我试图找到最接近的前一个星期日到日期(除非日期是星期天)。
例如,如果我有这个数组:
$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
);
答案 0 :(得分:2)
$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)));
}