我将优先考虑PHP的strtotime出色之处:
function x_week_range(&$start_date, &$end_date, $date) { $ts = strtotime($date); $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts); $start_date = date('Y-m-d', $start); $end_date = date('Y-m-d', strtotime('next saturday', $start));}对您提供的数据进行了测试,并且可以正常工作。不过,我并不特别喜欢您正在进行的整个参考工作。如果这是我的职能,我会像这样:
function x_week_range($date) { $ts = strtotime($date); $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts); return array(date('Y-m-d', $start), date('Y-m-d', strtotime('next saturday', $start)));}并这样称呼它:
list($start_date, $end_date) = x_week_range('2009-05-10');我不喜欢这样的事情做数学。日期比较棘手,我更喜欢让PHP来解决。



