不幸的是我不能使用DateTime()
因为该项目所在的服务器正在运行 PHP v.5.2。
有问题的行:
$aptnDate2 = date('Y-m-d', $_POST['nextAppointmentDate']);
抛出以下错误:
Notice: A non well formed numeric value encountered
所以我 var dump 以确保它的格式正确..
var_dump($_POST['nextAppointmentDate']);
string(10) "12-16-2013"
The PHP 文档状态 http://www.php.net/manual/en/function.date.php它需要一个时间戳而不是一个字符串。但当我这样做时:
date('Y-m-d', strtotime($_POST['nextAppointmentDate']));
进而var_dump
结果,我得到这个:
string(10) "1969-12-31"
为什么我不能使用此日期值和 strtotime() 格式化日期?
thanks!
从文档中strtotime() http://php.net/strtotime:
m/d/y 或 d-m-y 格式的日期可通过查看各个部分之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则假定为美式 m/d/y;然而如果分隔符是破折号 (-) 或点 (.),则采用欧洲 d-m-y 格式。
在你的日期字符串中,你有12-16-2013
. 16
不是有效的月份,因此strtotime()
回报false
.
由于您无法使用 DateTime 类,因此您可以手动替换-
with /
using str_replace() http://php.net/str_replace将日期字符串转换为以下格式strtotime()
理解:
$date = '2-16-2013';
echo date('Y-m-d', strtotime(str_replace('-','/', $date))); // => 2013-02-16
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)