PHP - Date返回错误的值


PHP - Date returning the wrong value

我有一点代码,它似乎不能正常工作。

我正试图把它变成正确的格式为我的数据库。我正在做以下事情:

date('Y-m-d H:i:s', strtotime('24/05/2011'));

但是每次我回显它,它返回:

1970-01-01 10:00:00

日期,格式为m/d/y或d-m-y是否消除了歧义各种之间的分隔组件:如果分隔符是a斜杠(/),则美式的m/d/y是假设;然而如果分隔符是a破折号(-)或点(.),然后是采用欧洲d-m-y格式。

strtotime

的文档

应该可以

date('Y-m-d H:i:s', strtotime('05/24/2011'));

只是猜测,但是试试这个:

date('Y-m-d H:i:s', strtotime('24/05/2011 00:00:00'));

经过测试,它显示这是有效的:

echo date('Y-m-d H:i:s', strtotime("24-5-2011"));

这意味着您的strtotime函数无法解析该日期。当它失败时,它返回false, date将其读取为0,这是UNIX纪元。正如程序员XR建议的那样,您可能需要稍微切换一下格式-如果他所说的不起作用,请尝试将datetime转换为这种格式:

date('Y-m-d H:i:s', strtotime('2011-05-24 00:00:00'));
  • strtotime文档。包含可接受的日期格式的链接。

首先,它不是date()而是strtotime()。其次,strtotime()不是魔棒,它可以读取您的思想并理解任何格式。
它只是一个接受特定参数的函数。因此,如果它返回错误的值-检查输入参数和阅读手册,看看他们是否正确。

第三,你不需要这么复杂的函数。您所需要的只是一些字符串操作:

list($d,$m,$y) = explode("/",$date);
$date = "$y-$m-$d";

理解字符串操作是使用PHP最重要的事情。