从具有特定时区和特定$ now值的相对日期/时间字符串中获取时间戳

时间:2013-01-24 20:06:46

标签: php datetime timezone strtotime

我知道有两种方法可以从PHP中的相对日期/时间字符串中获取时间戳:

strtotime :允许用户指定自己的$ now值

DateTime对象:允许用户指定自己的$ timezone值

有没有办法从日期/时间字符串中获取时间戳,允许指定时区和$ now值?似乎唯一的方法是使用strtotime,同时暂时覆盖整个php应用程序的默认时区,然后立即将其设置回来。这似乎是一个hacky解决方案,如果有一个更清洁的方式会很好。

编辑:似乎对我正在尝试做的事情存在一些误解。这是一个更具体的例子:

“我希望在America / Los_Angeles时区内找到与下周二下午3:00的字符串相对应的时间戳,并指定$ now的任意值,例如2014年3月14日上午8:05。”< / p>

1 个答案:

答案 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);