strtotime
有点神奇。虽然我知道它不能做任何,但我总是在寻找正确的解决方案之前猜测。
所以我想得到下个月的第一个星期日和星期一。我试过这个:
strtotime("first Sunday next month")
strtotime("first Monday next month")
格式化后{p> %d/%m/%y
),结果为:
12/11/2014
13/11/2014
这是星期三和星期四。是什么赋予了?我预计它不起作用或者给我错误的星期天,但星期三在那里做什么?
更新
我不需要帮助弄清楚如何到达下周日。我知道如何进行正确的计算(我知道如何查找正确的方法)。我上面的猜测只是在乱搜寻捷径。 我想知道,但是为什么我得到这个特殊的奇怪结果,这似乎与我写的所有内容完全无关
答案 0 :(得分:3)
试试这个:
echo date('r', strtotime("first Sunday of next month")) . PHP_EOL;
echo date('r', strtotime("first Monday of next month")) . PHP_EOL;
这非常棘手,但您需要确保您的格式在手册的Relative Formats部分中有详细说明。在这种情况下,您需要序数空间日期名称空间' 。否则,它可能只是按顺序进行两次不同的计算。
在这种情况下,由于整个表达式没有已知的格式,因此它会被分割:
测试代码:
echo date('r', strtotime("first Sunday next month")) . PHP_EOL;
echo date('r', strtotime("first Monday next month")) . PHP_EOL;
echo PHP_EOL;
echo date('r', strtotime("first Sunday")) . PHP_EOL;
echo date('r', strtotime("first Monday")) . PHP_EOL;
echo date('r', strtotime("next month")) . PHP_EOL;
免责声明:我自己几乎从未做过正确的事。
答案 1 :(得分:2)
尝试
// strtotime("first Sunday", strtotime("next month")); // wrong
echo date("%d/%m/%y", strtotime("first sunday of next month"));