【问题标题】:How can I parse a string using strtotime() for different timezones如何使用 strtotime() 解析不同时区的字符串
【发布时间】:2011-11-26 12:05:15
【问题描述】:

我有一个输入字符串,看起来像

“星期一下午 2:00”,我需要得到一个时间戳表示,但我不知道如何引入不同的时区。

例如,我现在只是简单地做

 $name = "Monday";
 $time_string = "2:00 pm";

 $time_stamp = strtotime("$name $time_string");

这会给我一个时间戳,但说“America/New_York”中的某个人输入这个 v“America/Los_Angeles”中的某个人,时间戳应该不同正确吗?

【问题讨论】:

标签: php timestamp unix-timestamp


【解决方案1】:

相信你可以在调用strtotime之前设置默认时区:

date_default_timezone_set('America/New_York');

但 UNIX 纪元始终采用 UTC,所以我不确定这对时间戳有什么影响:

// New York
date_default_timezone_set('America/New_York');
echo time(); // 1322309733

// London
date_default_timezone_set('Europe/London');
echo time(); // 1322309733

【讨论】:

  • 是的,我就是这么想的。需要重新考虑这一点。
  • 虽然这将允许您更改时区(全局,这是不必要的),但它仍然不会告诉您输入该日期的时区。
  • @Gordon 正是如此。我指的是这个问题:“时间戳应该不同吗?” -> 时间戳不会有所不同,因为它们始终采用 UTC。我的回答可能有点啰嗦! :)
猜你喜欢
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
  • 2022-11-15
相关资源
最近更新 更多