可以以最有效的方式将非常见日期格式转换为时间戳?

时间:2011-01-30 14:33:42

标签: php

我有这种格式的日期:20101101120000

我需要将它转换为PHP的时间戳。

我一直在网上搜索PHP文档,但找不到任何可以直接转换的内容。有人存在吗?如果没有,那么进行转换的最有效方法是什么?谢谢你的帮助。

4 个答案:

答案 0 :(得分:23)

您可以使用DateTime::createFromFormat执行此操作:

$d = DateTime::createFromFormat('YmdGis', '20101101120000');

$d现在是DateTime个实例。您可以将其转换为$d->getTimestamp()的时间戳,也可以使用DateTime方法。

请注意,这需要PHP 5.3。

答案 1 :(得分:5)

strtotime('20101101120000')

...

答案 2 :(得分:2)

您需要strptime函数。

格式在strftime描述。

答案 3 :(得分:0)

我只是添加了这个已解决的问题,因为这对于偶然发现的用户(就像我一样)并且希望获得实际的日期时间戳可能会有所帮助。

我对大多数人提到时间戳的假设是,他们正在寻找一个正常的“ YYYY-MM-DD HH:MM:SS ”时间戳,而不是你得到的unix时间戳。使用getTimestamp()方法(如果您确实在寻找UNIX时间戳,请参阅已接受的答案)。

所以我会进一步详细说明lonesomeday的答案(这是完全正确的),对于那些希望实际获得可以显示给用户或插入其数据库的有效格式化日期的人来说:

$d = DateTime::createFromFormat('YmdGis', '20101101120000');

$formatedDate = $d->format('Y-m-d H:i:s'); // will return 2010-11-01 12:00:00
$formatedDate = $d->format('m-d-Y h:i A'); // will return 11-01-2010 12:00 PM