2011-08-24 341 views
1

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

我尝试以下,但它没有返回值:

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

采样日期 - 24/08/2011下午11时47分09秒

+1

我们展示的样品日期字符串。 – HyderA

+0

检查编辑的问题! –

+0

切换到Y/M/d似乎工作 - '回声的strtotime( '2011/08/24上午11时47分09秒');' – HyderA

回答

0

strtotime不会得到你想要的结果,因为它假定m/d/Y的日期,见Date Formats

您可以尝试replace/“的日期s的-的,这将导致接受的格式,但感觉不对/越野车,尽管它应该工作,如果你的格式是固定的:

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

有趣的是,这是我第一次得到一个例外的答案和负面的投票数。一个解释会很好,但... – jeroen

+0

我会假设一个missclick。 upvoted补偿。 – Mchl

+0

@Mchl谢谢,我只是想知道我是否错过了一些东西...... – jeroen

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 
+0

IM在PHP 5.2.17 –

+0

那么这对你可能是手工解析。这或升级(无论如何都是高时间) – Mchl

+0

如何手动解析它? –

0
在第m

日期/ d/y或DMY格式通过查看在各个组件之间的分离器消除歧义:如果分离器是斜线(/),则美国米/ d假定/ Y;而如果分隔符是破折号( - )或点(。),则假定欧洲的d-m-y格式。

为了避免潜在的不确定性,最好使用ISO 8601(YYYY-MM-DD)日期或日期时间:: createFromFormat(时)成为可能。

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

相关问题