我从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);
答案 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);