Pre*_*fix 22 php date strtotime
我很遗憾无法使用DateTime()
此项目所在的服务器运行PHP v.5.2.
有问题的一行:
$aptnDate2 = date('Y-m-d', $_POST['nextAppointmentDate']);
Run Code Online (Sandbox Code Playgroud)
抛出以下错误:
Notice: A non well formed numeric value encountered
Run Code Online (Sandbox Code Playgroud)
所以我var转储以确保它的格式良好..
var_dump($_POST['nextAppointmentDate']);
string(10) "12-16-2013"
Run Code Online (Sandbox Code Playgroud)
在PHP的文档说明,它需要一个时间戳不是一个字符串.但是当我这样做时:
date('Y-m-d', strtotime($_POST['nextAppointmentDate']));
Run Code Online (Sandbox Code Playgroud)
然后var_dump
结果,我明白了:
string(10) "1969-12-31"
Run Code Online (Sandbox Code Playgroud)
为什么我不能使用此日期值和strtotime()格式化日期?
谢谢!
Ama*_*ali 55
从以下文档strtotime()
:
通过查看各个组件之间的分隔符来消除m/d/y或dmy格式的日期:如果分隔符是斜杠(/),则假设为美国m/d/y; 而如果分隔符是破折号( - )或点(.),则假定为欧洲dmy格式.
在你的日期字符串中,你有12-16-2013
.16
不是有效月份,因此strtotime()
返回false
.
由于您不能使用DateTime类,您可以手动替换-
with /
using str_replace()
以将日期字符串转换为strtotime()
可理解的格式:
$date = '2-16-2013';
echo date('Y-m-d', strtotime(str_replace('-','/', $date))); // => 2013-02-16
Run Code Online (Sandbox Code Playgroud)