找到最近的星期日到目前为止?

时间:2014-03-12 20:44:53

标签: php

我试图找到最接近的前一个星期日到日期(除非日期是星期天)。

例如,如果我有这个数组:

$dates = array(
    "2014-03-02 10:15:10", // sun
    "2014-03-03 12:15:10", // mon
    "2014-03-04 13:15:10", // tue
    "2014-03-05 10:15:10", // wed
    "2014-03-06 14:15:10", // thu
    "2014-03-07 18:15:10", // fri
    "2014-03-08 14:15:10", // sat
    "2014-03-09 14:15:10"  // sun
);

如何有效地输出:

$dates = array(
    "2014-03-02 00:00:00", // sun
    "2014-03-02 00:00:00", // sun
    "2014-03-02 00:00:00", // sun
    "2014-03-02 00:00:00", // sun
    "2014-03-02 00:00:00", // sun
    "2014-03-02 00:00:00", // sun
    "2014-03-02 00:00:00", // sun
    "2014-03-09 00:00:00"  // sun
);

1 个答案:

答案 0 :(得分:2)

this answer

$date = date('Y-m-d', strtotime('last Sunday', strtotime($date)));

在你的情况下:

$dates = array_map('find_sunday', $dates);

function find_sunday($date) {
    if (date('w', strtotime($date)) == 0) {
         return date('Y-m-d', strtotime($date));
    }
    return date('Y-m-d', strtotime('last Sunday', strtotime($date)));
}