Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:strotime()始终返回1970年1月1日_Php_Date_Format_Strtotime - Fatal编程技术网

PHP:strotime()始终返回1970年1月1日

PHP:strotime()始终返回1970年1月1日,php,date,format,strtotime,Php,Date,Format,Strtotime,我试图用strotime以欧洲格式(dd/mm/yyyy)显示日期,但它总是返回1970年1月1日 这是我的代码行: echo "<p><h6>".date('d/m/Y', strtotime($row['DMT_DATE_DOCUMENT']))."</h6></p>"; echo“”。日期('d/m/Y',标准时间($row['DMT\u date\u DOCUMENT'])。“”; 在我的数据库中,字段是varchar,记录的格式类似于

我试图用
strotime
欧洲格式(dd/mm/yyyy)
显示日期,但它总是返回1970年1月1日

这是我的代码行:

echo "<p><h6>".date('d/m/Y', strtotime($row['DMT_DATE_DOCUMENT']))."</h6></p>";
echo“”。日期('d/m/Y',标准时间($row['DMT\u date\u DOCUMENT'])。“

”;
在我的数据库中,字段是varchar,记录的格式类似于yyyy.mm.dd

我对另一个字段使用相同的代码行,该字段的格式类似于yyyy-mm-dd(也使用varchar),并且工作正常


谢谢您的帮助。

由于格式
yyyy-mm-dd
有效,请尝试将
替换为
-

date('d/m/Y', strtotime(str_replace('.', '-', $row['DMT_DATE_DOCUMENT'])));
尝试:

$date = date_parse_from_format("Y.m.d", $row['DMT_DATE_DOCUMENT']);
$time = mktime($date['hour'], $date['minute'], $date['second'], $date['month'], $date['day'], $date['year']);
echo "<p><h6>".date('d/m/Y', $time)."</h6></p>";
引用

通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式

为了避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或
DateTime::createFromFormat()

因此,在您的情况下,它应该是YYYY-MM-DD格式或d.m.y格式

如果要解析自定义格式,请使用

比如说,

date_create_from_format('Y.m.d',$row['DMT_DATE_DOCUMENT'])

这可能是因为strotime假设的是mm/dd/yyyy,如果您输入一个像2012年2月13日这样的日期,它会抱怨没有第13个月,并给您时间0(1970年1月1日)。是的,只有
日期
不会接受来自\u格式的
日期解析\u的直接输出。
date_create_from_format('Y.m.d',$row['DMT_DATE_DOCUMENT'])