使用 strtotime 并考虑时区
我有一个在 PHP 中运行的系统,并且正在使用 CodeIgniter(如果有 CI 特定的答案,我也会很高兴)。
我经常需要计算出日期的时间戳,例如“本周四”或“本周一”。我目前使用 strtotime("this Wednesday")
,它满足了我的要求。
我在东部地区有一台服务器。现在是 2012 年 2 月 24 日星期五凌晨 01:00(凌晨 1:00),纽约。
我有一位用户将他的时区指定为太平洋时间。现在是 2012 年 2 月 23 日星期四晚上 22:00(晚上 10 点)旧金山。
我使用strtotime(“本周四”)。由于我的服务器位于 EST,因此它返回 2012 年 3 月 1 日的时间戳。我想考虑用户的时区。对于我的用户,“this Wednesday”应该返回 2012 年 2 月 23 日。
我可以使用 strtotime("this Friday")
来代替吗?如果可以,我将如何指定目标时区?
如果没有,您建议采用什么方法来获取特定时区“本周四”的日期。
I have a system running in PHP and am using CodeIgniter (if there is a CI specific answer to this I would be happy as well).
I often need to figure out the timestamp of dates such as "this Thursday" or "this Monday". I currently use strtotime("this Thursday")
and it gives me what I ask for.
I have a server in EST. It is 01:00 (1:00am), early morning Friday, Feb 24, 2012 in New York.
I have a user who has specified his timezone to be Pacific time. Right now it is 22:00 (10pm) late evening Thursday Feb 23, 2012 in San Francisco.
I use strtotime("this Thursday")
. Since my server is in EST, it returns me the timestamp for March 1, 2012. I would like to take the user's timezone into consideration. For my user, "this Thursday" should return Feb 23, 2012.
Can I use strtotime("this Thursday")
for it, and if so, how would I specify the target timezone?
If not, what approach would you suggest to getting the date for "this Thursday" in a specific timezone.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
strtotime 手册
直接链接到date_default_timezone_set
。我会把它当作使用它的暗示。The
manual for strtotime
links directly todate_default_timezone_set
. I would take that as a hint to use that.我刚刚发现 strtotime 采用 $now 参数。我可以将 $now 参数指定为用户时区中的当前时间,并且 strtotime 返回我需要的内容。
I just figured out that strtotime takes a $now parameter. I can specify the $now param to be the current time in the user's timezone and strtotime returns me what I need.
这是从 php 站点获取的字符串
This is taken string from the php site