获取给定的一组日期时间的第一个星期一

Avi*_*ash 1 php datetime

我需要什么

我有一个日期时间列表.我想得到每个日期时间的第一个星期一.

例如:假设给定的日期时间是

 2013-07-05 2013-08-05, 2013-09-13 etc.
Run Code Online (Sandbox Code Playgroud)

我希望获得所有这些日期时间的第一个星期一,以便输出结果

 2013-07-01, 2013-08-05, 2013-09-02 respectively
Run Code Online (Sandbox Code Playgroud)

我实际上坚持使用这个stftime.

strftime("%d/%m/%Y", strtotime("first Monday of July 2012"));
Run Code Online (Sandbox Code Playgroud)

Dev*_*per 8

使用php Datetime类:

$Dates = array('2013-07-02', '2013-08-05', '2013-09-13');
foreach ($Dates as $Date)
{
    $test = new DateTime($Date);
    echo $test->modify('first monday')->format('Y-m-d');
}
Run Code Online (Sandbox Code Playgroud)

  • 这实际上不是这个问题的正确答案。`$test->modify('first monday');` 会将 DateTime 对象更新到下一个星期一。在某些情况下,您将在下个月的一个星期一结束。修改 DateTime 对象的正确方法是这样做:`$test->modify('first monday of this month');` (2认同)