【问题标题】:this week in PHP 5.3本周 PHP 5.3
【发布时间】:2013-02-09 23:38:12
【问题描述】:

我试图找到答案但没有结果

问题是:

在星期天函数中返回下周星期一的日期

$date = new DateTime();
$date->setTimezone(new DateTimeZone('Europe/Moscow'));
$date->setTimestamp(strtotime('Monday this week'));

echo $date->format("d.m.Y"); 

但在其他日子(星期日除外),它返回星期一的正确值。

我曾经手动设置过 locale ,它有一个星期一 - 一周的第一天,但​​ PHP “认为”星期日仍然是第一天。是虫子吗??还是我做错了什么?

【问题讨论】:

    标签: php datetime


    【解决方案1】:

    strtotime 似乎有一些已知的特质。 cmets中提到了:

    http://www.php.net/manual/en/datetime.formats.relative.php#108317

    他们没有具体提到不同的语言环境,但如果strtotime() 在不同的语言环境下对next/this week 的行为不正确,那就不足为奇了。

    试试this Mondaynext Monday,看看其中一个是否能满足您的需求。

    【讨论】:

    • 这个星期一给出相同的结果,如果我将本地时间更改为星期六 - 它是正确的))现在我“修复”它以用于星期日的特殊 if 语句
    • 这可能是您将被卡住的解决方案。 PHP 充满了像这样的可怕陷阱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2010-12-09
    • 2010-12-03
    • 1970-01-01
    相关资源
    最近更新 更多