从PHP日期时间获取Unix时间戳的方法是什么?

21

我正在尝试使用PHP获取Unix时间戳,但好像不起作用。这是我要转换为Unix时间戳的格式:

PHP

$datetime = '2012-07-25 14:35:08';

$unix_time = date('Ymdhis', strtotime($datetime ));
echo $unix_time;

我的结果看起来像这样:

20120725023508

有任何想法我做错了什么吗?

3个回答

35

strtotime函数返回成功时的时间戳,否则返回FALSE。

 echo strtotime('2012-07-25 14:35:08' );

输出

1343219708

1
啊,试图把它搞得比必要的难。谢谢! - user1216398
2
@Baba 但是strtotime函数是有时区限制的,不是吗? - shasi kanth
1
小心!strtotime假定时间字符串在php当前的date_default_timezone_get指定的时区中。如果不确定,请首先使用与您的日期字符串来源相对应的时区名称调用date_default_timezone_set - ToolmakerSteve

3
为了用面向对象的方式扩展这里的答案,必须命名DateTime类。自PHP 5.2以来,DateTime类可用,并可按如下方式使用。
$date = DateTime::createFromFormat('Y-m-d H:i:s', '2012-07-25 14:35:08');
echo $date->getTimestamp(); // output: 1343219708

甚至可以作为一行代码

echo $date = (new DateTime('2012-07-25 14:35:08'))->getTimestamp();
// output: 1343219708

3
这是将其转换为Unix时间戳:strtotime($datetime),但您又使用date()将其转换回日期。

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