如何获得变量周的开始和结束日期?

时间:2014-09-05 16:27:13

标签: php date

我从php.net得到了这个。它得到了当周的开始和结束日期。

<?php
function week($curtime) {
    $date_array = getdate (time());
    $numdays = $date_array["wday"];
    $startdate = date("Y-m-d", time() - ($numdays * 24*60*60));
    $enddate = date("Y-m-d", time() + ((7 - $numdays) * 24*60*60));
    $week['start'] = $startdate;
    $week['end'] = $enddate;
    return $week;
}
?>

如何修改上述内容以查找变量周的开始和结束日期,更具体地说是变量日期。所以说一个变量的值是一个日期,那个日期是上周或下周。如果它是上周,脚本应该得到上周的开始和结束日期。如果它是下周,脚本应该得到下一个weeek的开始和结束日期。

这个下一个脚本与上面的脚本非常相似,但它不包括周末。也许这个更好地修改变量日期。与您修改的2个脚本中的哪一个无关。我只想获得变量日期的开始和结束日期。

$today = time();
$wday = date('w', $today);
$datemon = date('m-d-Y', $today - ($wday - 1)*86400);
$datetue = date('m-d-Y', $today - ($wday - 2)*86400);
$datewed = date('m-d-Y', $today - ($wday - 3)*86400);
$datethu = date('m-d-Y', $today - ($wday - 4)*86400);
$datefri = date('m-d-Y', $today - ($wday - 5)*86400);

这似乎不起作用:

$today = time($mydate);

1 个答案:

答案 0 :(得分:1)

您可以使用DateTime和一些数学逻辑;

function getStartAndEndWeekDates($year, $week) {
    $date = new DateTime();
    $date->setTimezone( new DateTimeZone("Europe/London")  );
    $date->setISODate( $year, $week );
    //Echo'ing to test...
    echo "Start: ". $date->format('d-M-Y');
    echo PHP_EOL;
    echo "End: ".  $date->add(new DateInterval('P7D'))->format("d-M-Y");
}

getStartAndEndWeekDates(2014, 1);

Live Preview