PHP中的DateTime工作日问题

时间:2012-02-20 15:47:51

标签: php datetime

我使用以下内容:

$endtime = new DateTime(date('r', '1329717600'));
$endtime->setTimezone(new DateTimeZone('America/Los_Angeles'));
echo $endtime->format('w - l');

应输出“1 - 星期一”;但它输出“0 - 星期天”......

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

这在技术上是正确的 - 该时间戳的时间/日期将是洛杉矶的星期日晚上10点,星期一早上6点在UTC。

http://www.convert-unix-time.com/?t=1329717600

答案 1 :(得分:3)

尝试以下方法:

$endtime = new DateTime(date('r', '1329717600'), new DateTimeZone('America/Los_Angeles'));
echo $endtime->format('w - l');
setTimezone函数

PHP documentation comment

  

不修改DateTime对象表示的时间戳值   使用此方法设置时区时。只有时区,和   因此产生的显示格式受到影响。

答案 2 :(得分:0)

$endtime = new DateTime;
$endtime->createFromFormat('U', 1329717600, new DateTimeZone('America/Los_Angeles'));
echo $endtime->format('w - l');