我有一个$ _POST数组数据字段,其中包含mm-dd-YYYY格式的日期,如下所示:
$_POST['submission_date'] => 12-15-2014 //I get this after I did print_r($_POST);
现在我尝试使用strtotime()代码,但它没有返回任何内容。为什么呢?
echo "Submission Date ".strtotime($_POST['submission_date']);
请帮帮我。
感谢。
答案 0 :(得分:3)
通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。
为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。
<强> Reference 强>
阅读文档是否如此困难?你可能花了更多的时间来输入你的问题...而错过了所有其他有趣的琐事
答案 1 :(得分:2)
如果发布的格式位于m-d-Y
,则您无法使用strtotime()
函数将其直接转换为unix时间戳,因为它will return false
。
如果您需要使用strtotime()
,请change the input format to m/d/Y
by simple str_replace()
。
另一方面,您可以使用DateTime
class:
$dt = DateTime::createFromFormat('!m-d-Y', $submission_date);
echo $dt->format('Y-m-d'), " or ", $dt->getTimestamp();
答案 2 :(得分:0)
回答更新
只需添加字符串替换
$dbDate = str_replace('-', '/', $_POST['submission_date']);
一切都会奏效。
您的日期格式为American month, day and year
并且需要/
作为分隔符-