php - 将带有时区的日期字符串转换为时间戳

标签 php date timezone

我收到以下格式的日期 2015-01-09T20:46:00+0100 并需要将其转换为时间戳。 不幸的是, strtotime 函数忽略了时区部分:

print strtotime('2015-01-09T20:46:00+0100') . "\n";
print strtotime('2015-01-09T20:46:00');

//result is the same with or without timezone:
//1420832760
//1420832760

解决这个问题的正确方法是什么?

最佳答案

DateTime 正确处理这个问题:

$date = new DateTime('2015-01-09T20:46:00+0100');
echo $date->getTimestamp();
echo "\n";
$date = new DateTime('2015-01-09T20:46:00');
echo $date->getTimestamp();

1420832760
1420836360

Demo

关于php - 将带有时区的日期字符串转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924003/

相关文章:

php - 使用 PHP 将厘米 (cm) 转换为英尺和英寸

java - 计算两个日期之间的差异: not working as expected

javascript - 按日期对嵌套的对象数组进行排序

Java:将 "Europe/London"转换为 3 位时区

mysql - 如何在Mysql中获取客户端当前日期时间

PHP Laravel 从另一个驱动器读取文件

php - Xampp mysql 不启动 v3.2.4

java - 日期范围内的日期范围

ruby-on-rails - Rails 应用程序 - 如何在本地时区输入事件

javascript - 更新 MYSQL 表给出成功消息,但不更新表