2009-12-20 62 views

回答

25

我假设你的意思是UNIX timestamp

strtotime()应该有所帮助。

+0

是的,UNIX时间戳!我正是这个意思。感谢您的帮助 – baltoro 2009-12-20 16:18:42

5

你的意思是像一个UNIX时间戳?尝试:

echo strtotime('Tue Dec 15 2009'); 
+0

非常感谢Hanse – baltoro 2009-12-20 16:20:38

15

可以使用strtotime功能,该日期转换为时间戳:

$str = 'Tue Dec 15 2009'; 
$timestamp = strtotime($str); 

而且,只是可以肯定,我们将其转换回一个日期作为字符串:

var_dump(date('Y-m-d', $timestamp)); 

这给了我们:

string '2009-12-15' (length=10) 

(这证明strtotime没有理解我们的约会^^)



[编辑2012-05-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()允许从几乎任何日期创建DateTime对象,不管它是如何格式化,因为您可以在中指定您的日期格式(此方法适用于PHP> = 5.3)

DateTime::format()将允许您将该对象格式化为几乎任何类型的日期格式 - 包括UNIX Timestamp,如此处请求。

+0

非常感谢Martin。喜欢你的验证部分。 :) – baltoro 2009-12-20 16:21:42

+0

@Usman:不客气:-) ;;好吧,我有时候会带来不好的惊喜(尤其是因为我是法国人,而且我们的日期格式与英文不一样),所以我更喜欢小心谨慎^^ – 2009-12-20 16:25:34

+0

这是最好的答案,而不是一个检查。 – nottinhill 2012-09-03 14:13:52