我知道有两种方法可以从PHP中的相对日期/时间字符串中获取时间戳:
strtotime :允许用户指定自己的$ now值
DateTime对象:允许用户指定自己的$ timezone值
有没有办法从日期/时间字符串中获取时间戳,允许指定时区和$ now值?似乎唯一的方法是使用strtotime,同时暂时覆盖整个php应用程序的默认时区,然后立即将其设置回来。这似乎是一个hacky解决方案,如果有一个更清洁的方式会很好。
编辑:似乎对我正在尝试做的事情存在一些误解。这是一个更具体的例子:
“我希望在America / Los_Angeles时区内找到与下周二下午3:00的字符串相对应的时间戳,并指定$ now的任意值,例如2014年3月14日上午8:05。”< / p>
答案 0 :(得分:2)
我准备了一个例子。这可能是你想要的:
<?php
// Including the timezone int the time strings (thanks @Mike B!!!)
// will make it very easy. just strtotime() is required
// create a timestamp for March 14th PDT
$now = strtotime('14 March 2014 8:05am America/Los_Angeles');
// get the requested timestamp.
$nexTuesday = strtotime('next tuesday 3:00 pm America/Los_Angeles', $now);