在strtotime面临问题()

时间:2017-04-18 04:42:26

标签: php date

我在echo date()中面临一些问题,其中包含以下格式:

如果我使用d / m / Y格式:'18 / 04/2017'那么date()无法识别,因为格式包含/

public class EpisodesController : Controller
{
    private readonly ITestDbContext dbContext;

    public EpisodesController(ITestDbContext dbContext)
    {
        this.dbContext = dbContext;
    }

    ...
}
  

它将输出:01-01-1970

但是当我使用m / d / Y格式时:'04 / 18/2017'然后date()它识别

<?php
  echo date("d-m-Y",strtotime('16/04/2017'));
?>
  

它将输出:16-04-2017

我没有得到date()的这些不同行为,请有人帮助我

3 个答案:

答案 0 :(得分:2)

  

正斜杠(/)表示美国M / D / Y格式,短划线( - )   表示欧洲D-M-Y,句点(。)表示ISO Y.M.D。

因此,如果您的日期与04/16/2017相同,请将/更改为-,然后在其上使用date()功能将其转换为任何格式。

Reference

Working Code

答案 1 :(得分:1)

您可以使用range()将日期转换为您想要的任何格式。您的代码存在的问题是date_create_from_format不支持此格式。

Learn about strtotime formats

如果您使用strtotime,那么它将无效,因为它不属于strtotime的支持格式。使用

支持的格式(适用于dd/mm/yyyy dd mm

  

dd [。\ t-] mm [.-] YY

     

示例: 16-04-2017

     

示例: 16.04.2017

     

示例: 16 \ t04t \ 2017

yyyy

答案 2 :(得分:0)

另一种方法是将/替换为给定日期的-

$date = '16/04/2017';
$date = str_replace("/", "-", $date);
echo date("d-m-Y",strtotime($date));