PHP - 日期返回错误的值

时间:2011-04-09 05:16:14

标签: php mysql

我有一些代码,似乎没有正常工作。

我正在尝试将其设置为我的数据库的正确格式。我正在做以下事情:

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

但每当我回应它时,它都会返回:

1970-01-01 10:00:00

4 个答案:

答案 0 :(得分:3)

  

日期为m / d / y或d-m-y格式   通过观察来消除歧义   各种之间的分隔符   组件:如果分隔符是   斜线(/),然后是美国的m / d / y   假定;而如果分隔符是a   破折号( - )或点(。),然后是   假设欧洲d-m-y格式。

来自strtotime

的文件

这应该有效

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

答案 1 :(得分:1)

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

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"));

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

首先,它不是date()而是strtotime()。 接下来,strtotime()不是一个魔杖,阅读你的思想并理解任何格式 它只是一个功能,接受某些论点。 因此,如果它返回错误的值 - 检查输入参数并阅读手册以查看它们是否正确。

第三,无论如何你都不需要这么复杂的功能。您只需要几个字符串操作:

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

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