PHP:将日期转换为秒数?

6

我有一个日期,如Tue Dec 15 2009。如何将其转换为秒数?

更新: 如何将上述格式的日期转换为Unix时间戳?

3个回答

28

是的,UNIX时间戳!那就是我想要的。谢谢你的帮助。 - Usman

18
你可以使用strtotime函数将该日期转换为时间戳:
$str = 'Tue Dec 15 2009';
$timestamp = strtotime($str);

而且,为了确保,让我们将其转换回日期作为字符串:
var_dump(date('Y-m-d', $timestamp));

这给了我们:
string '2009-12-15' (length=10)

(这证明了 strtotime 确实理解了我们的日期 ^^)

[编辑于2012年5月19日]由于其他一些问题可能会引导一些读者到这里:请注意strtotime()并不是唯一的解决方案,你应该能够使用DateTime类来处理,它提供了一些有趣的功能 - 尤其是如果你使用的是PHP >= 5.3


在这种情况下,你可以使用类似下面的代码部分:
$str = 'Tue Dec 15 2009';
$format = 'D F d Y';
$dt = DateTime::createFromFormat($format, $str);
$timestamp = $dt->format('U');

[**`DateTime::createFromFormat()`**](https://www.php.net/manual/en/datetime.createfromformat.php) 允许您从几乎任何日期创建一个**`DateTime`**对象,无论其格式如何,因为您可以指定日期的格式(此方法适用于PHP >= 5.3)。

DateTime::format()将允许您将该对象格式化为几乎任何类型的日期格式,包括所请求的UNIX时间戳


1
@Usman:不用谢 :-) ;;嗯,有时候我用strtotime也会出现意想不到的问题(尤其是因为我是法国人,我们的日期格式与英语不同),所以我更喜欢小心谨慎^^ - Pascal MARTIN
1
这是最佳答案,而不是已勾选的答案。 - Stephan Kristyn

6
你是指像UNIX时间戳一样吗?尝试使用以下代码:
echo strtotime('Tue Dec 15 2009');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接