[英]STRTOTIME to find current week, date for Monday and Saturday, PHP
我有這些行:
$staticstart = date('Y-m-d',strtotime('last Monday'));
$staticfinish = date('Y-m-d',strtotime('next Saturday'));
我用它們來選擇本周的星期一和星期六,但是當它實際上是星期一時,它選擇了前一周的星期一,從而顯示了 2 周的數據......我已經試過了,它沒有產生結果:
$staticstart = date('Y-m-d',strtotime('this Monday'));
我錯過了什么? 有沒有更好的方法來查找本周的星期一和星期六(日期)?
你為什么不試試這個
//check the current day
if(date('D')!='Mon')
{
//take the last monday
$staticstart = date('Y-m-d',strtotime('last Monday'));
}else{
$staticstart = date('Y-m-d');
}
//always next saturday
if(date('D')!='Sat')
{
$staticfinish = date('Y-m-d',strtotime('next Saturday'));
}else{
$staticfinish = date('Y-m-d');
}
捷徑:
$start = (date('D') != 'Mon') ? date('Y-m-d', strtotime('last Monday')) : date('Y-m-d'); $finish = (date('D') != 'Sat') ? date('Y-m-d', strtotime('next Saturday')) : date('Y-m-d');
獲取當前周之間的日期范圍
$monday = strtotime("last monday");
$monday = date('w', $monday)==date('w') ? $monday+7*86400 : $monday;
$sunday = strtotime(date("Y-m-d",$monday)." +6 days");
$this_week_start = date("Y-m-d",$monday);
$this_week_end = date("Y-m-d",$sunday);
echo "Current week range from $this_week_start to $this_week_end ";
$staticstart = (today == monday ? date('Y-m-d', today) : date('Y-m-d', strtotime('last monday'));
$week_number = date("W", strtotime('now'));// ISO-8601 week number
$year_number = date("o", strtotime('now'));// ISO-8601 year number
// as per ISO-8601 specification, December 28th is always in the last week of its year. The highest week number in a year is either 52 or 53.
// and January 4th always be in the first week of the year
// and week 01 is the week with the first Thursday in it
// Week number according to the ISO-8601 standard, weeks starting on Monday. The first week of the year is the week
// N ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)
// w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)
// PHP week start from 0 = sunday to 6 saturday
// $sunday_last_week = date("Y-m-d", strtotime('sunday last week'));
// $sunday_this_week = date("Y-m-d", strtotime('sunday this week'));
// echo "sunday last week: $sunday_last_week - sunday this week: $sunday_this_week";
if($week_number<=9)
{
$week_number= "0".$week_number;
}
$last_monday = date('Y-m-d', strtotime("$this_year-W$week_number"));
// print date of first day of week (MONDAY), week_number must be two digit and year must be 4 digit ISO 8601
$tuesday= date('Y-m-d',strtotime("$last_monday +1 days"));
$wednesday= date('Y-m-d',strtotime("$last_monday +2 days"));
$thursday= date('Y-m-d',strtotime("$last_monday +3 days"));
$friday= date('Y-m-d',strtotime("$last_monday +4 days"));
$saturday= date('Y-m-d',strtotime("$last_monday +5 days"));
$next_sunday= date('Y-m-d',strtotime("$last_monday +6 days"));
?>
我認為這是一個更簡單的解決方案
$monday = date('Y-m-d', strtotime('monday this week'));
$saturday = date('Y-m-d', strtotime('saturday this week'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.