如何使用 strtotime() 解析不同时区的字符串

发布于 2024-12-18 09:33:24 字数 285 浏览 0 评论 0原文

我有一个类似于

“Monday 2:00 pm”的输入字符串,我需要获取它的时间戳表示,但我不知道如何引入不同的时区。

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

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

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

,这会给我一个时间戳,但假设“美国/纽约”中的某人输入此值,而“美国/洛杉矶”中的某个人输入的时间戳应该不同,对吗?

I have an input string that will look something like

"Monday 2:00 pm" and I need to get a timestamp representation of this, but I cant figure out how to introduce different timezones.

For example right now I just simply do

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

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

which will get me a timestamp but say someone in 'America/New_York' inputs this v someone in 'America/Los_Angeles' the timestamps should be different correct?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岛歌少女 2024-12-25 09:33:24

我相信你可以在调用 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

I believe you can set the default timezone before you call strtotime:

date_default_timezone_set('America/New_York');

But the UNIX epoch is always in UTC, so I'm not sure this makes any difference to the timestamp:

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

// London
date_default_timezone_set('Europe/London');
echo time(); // 1322309733
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文