我有以下代码行
$sunday = date ("m/d", strtotime("last sunday"));
$saturday = date("m/d",strtotime("this saturday"));
但如果今天是星期天,今天就不会选择。本周剩余时间将会很好,因为上周日将是今天。我想这样做:
if (today is not sunday) {set to last sunday }else{ set to today }
同样适用于星期六。
修改
做一些类似的事情是可以接受的,还是有更好的方式:
$today = date('D', strtotime("today"));
if( $today === 'Sun') {
$sunday = date ("m/d", strtotime("today"));
}else{
$sunday = date ("m/d", strtotime("last sunday"));
}
if ( $today === "Sat"){
$saturday = date ("m/d", strtotime("today"));
}else{
$saturday = date("m/d",strtotime("this saturday"));
}
答案 0 :(得分:1)
我相信你真的可以自己想出来,但是......
怎么样:
function today_or_lastday ($day) {
return date('m/d', strtotime("7 days ago")) == date('m/d', strtotime("last $day"))
? date('m/d', strtotime("today"))
: date('m/d', strtotime("last $day"));
}
和
$sunday = today_or_lastday("sunday");
$saturday = today_or_lastday("saturday");
答案 1 :(得分:0)
我会使用这样的一行来获得最后/当前的周六和周日:
$sunday = date( 'm/d', time() - ( date( 'w' ) * 3600*24 ) );
$saturday = date( 'm/d', time() - ( ( date( 'w' ) + 1 ) % 7 * 3600*24 ) );
星期天我们从星期日开始服用。
日期('w')给我们工作日(0 =星期日,1 =星期一,... 6 =星期六),我们减去自星期日以来过去的天数(以秒为单位计算3600 * 24)。
对于星期六我们做同样的事情,但添加一些数学技巧来调整为第6天。