w=10=sh strtotime sh=11=sh false

PHP strtotime returns false

我有一个 jquery 函数,它将日期 '27/05/2016 11:25 PM' 传递到 PHP 文件。 PHP 文件会将此更新到数据库。

我正在使用 strtotime 将此字符串转换为日期格式 '05/27/2016 11:25 PM',但 strtotime returns 为假。

我的 PHP 日期转换:

$EndDate = strtotime($Date);
$NewEndDateValue = date('m/d/Y h:i A', $EndDate);

var_dump($NewEndDateValue); //this returns false

strtotime() 默认情况下将带有 / 分隔符的日期视为奇怪的美国日期格式,它们从日期的中间开始并从那里向外工作(见图)。这样说很好,但期望逻辑机器(计算机)以这种方式工作是完全不合逻辑的。

无论如何,您需要做的就是将 / 转换为 - 并且 date() 将采用合乎逻辑的日期格式并因此起作用。

<?php
$Date = '27/05/2016 11:25 PM';
$dat = str_replace('/', '-', $Date);
$EndDate = strtotime($dat);

$NewEndDateValue = date('m/d/Y h:i A', $EndDate);

var_dump($NewEndDateValue); // "05/27/2016 11:25 PM"