如何将预设日期字符串转换为时间间隔?日期字符串的格式为d/m/Y g:i:s A
?
我尝试了以下内容,但它什么都没有返回:
$date = ... time format set above ....;
echo strtotime($date); //returns nothing.
日期 - 24/08/2011 11:47:09 PM
答案 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()。