不幸的是,我不能使用DateTime()
,因为这个项目所在的服务器运行的是PHPV5.2。
有问题的那一行:
$aptnDate2 = date('Y-m-d', $_POST['nextAppointmentDate']);
抛出以下错误:
Notice: A non well formed numeric value encountered
因此,我使用var转储来确保它的格式正确。
var_dump($_POST['nextAppointmentDate']);
string(10) "12-16-2013"
它接受时间戳而不是字符串的php docs state。但当我这么做的时候:
date('Y-m-d', strtotime($_POST['nextAppointmentDate']));
然后var_dump
结果,我得到了这个:
string(10) "1969-12-31"
为什么不能使用此日期值和strtotime()格式化日期?
谢谢!
发布于 2013-12-14 03:32:23
来自strtotime()
的文档
通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式中的
日期的歧义:如果分隔符是斜杠(/),则假定为美国的m/d/y;而如果分隔符是短划线(-)或点(.),则假定为欧洲的d-m-y格式。
在您的日期字符串中,有12-16-2013
。16
不是有效的月份,因此strtotime()
返回false
。
由于您不能使用DateTime类,因此可以使用str_replace()
手动将-
替换为/
,以便将日期字符串转换为strtotime()
能够理解的格式:
$date = '2-16-2013';
echo date('Y-m-d', strtotime(str_replace('-','/', $date))); // => 2013-02-16
https://stackoverflow.com/questions/20574465
复制相似问题