如何在PHP中将日期字符串转换为时间间隔

时间:2011-08-24 22:44:03

标签: php date time strtotime

如何将预设日期字符串转换为时间间隔?日期字符串的格式为d/m/Y g:i:s A

我尝试了以下内容,但它什么都没有返回:

$date = ... time format set above ....;
echo strtotime($date); //returns nothing.

日期 - 24/08/2011 11:47:09 PM

3 个答案:

答案 0 :(得分:1)

如果您使用的是PHP 5.3或更高版本,则可以使用DateTime::createFromFormat

对于PHP 5.2,您可以将其重新格式化为strtotime()可以处理的内容:

$date = '24/08/2011 11:47:09 PM';
$d = substr($date,6,4).substr($date,3,2).substr($date,0,2).substr($date,10);
$ts = strtotime($d); //1314229629

答案 1 :(得分:0)

strtotime无法获得所需的结果,因为它假设日期为m/d/Y,请参阅Date Formats

你可以在/的日期-尝试replace,这会产生一种可接受的格式,但感觉错误/错误,尽管它应该有效你的格式是固定的:

$new_date = str_replace("/", "-", $string_date);
$timestamp = strtotime($new_date);

答案 2 :(得分:0)

  

通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。

     

为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。

http://php.net/manual/en/function.strtotime.php