我想查找星期一,星期二,星期三等的日期戳。如果这一天尚未在本周到来,我希望将日期定在本周,否则将在下周。谢谢!
我想查找星期一,星期二,星期三等的日期戳。如果这一天尚未在本周到来,我希望将日期定在本周,否则将在下周。谢谢!
Answers:
看到 strtotime()
strtotime('next tuesday');
通过查看星期数,您可能会发现自己是否已经过了这一天:
$nextTuesday = strtotime('next tuesday');
$weekNo = date('W');
$weekNoNextTuesday = date('W', $nextTuesday);
if ($weekNoNextTuesday != $weekNo) {
//past tuesday
}
我知道这是一个较晚的答案,但我想补充我的答案以供将来参考。
// Create a new DateTime object
$date = new DateTime();
// Modify the date it contains
$date->modify('next monday');
// Output
echo $date->format('Y-m-d');
令人高兴的是,您还可以使用今天以外的日期来执行此操作:
// Create a new DateTime object
$date = new DateTime('2006-05-20');
// Modify the date it contains
$date->modify('next monday');
// Output
echo $date->format('Y-m-d');
要设定范围:
$monday = new DateTime('monday');
// clone start date
$endDate = clone $monday;
// Add 7 days to start date
$endDate->modify('+7 days');
// Increase with an interval of one day
$dateInterval = new DateInterval('P1D');
$dateRange = new DatePeriod($monday, $dateInterval, $endDate);
foreach ($dateRange as $day) {
echo $day->format('Y-m-d')."<br />";
}
PHP手册-DateTime
PHP手册-DateInterval
PHP手册-DatePeriod
PHP手册-克隆
这个问题被标记为“ php”,因此正如汤姆所说,做到这一点的方式应该是这样的:
date('Y-m-d', strtotime('next tuesday'));
由于某些原因,strtotime('next friday')
显示当前星期的星期五日期。尝试以下方法:
//Current date 2020-02-03
$fridayNextWeek = date('Y-m-d', strtotime('friday next week'); //Outputs 2020-02-14
$nextFriday = date('Y-m-d', strtotime('next friday'); //Outputs 2020-02-07
PHP 7.1:
$next_date = new DateTime('next Thursday');
$stamp = $next_date->getTimestamp();
PHP手册getTimestamp()
如果要查找星期一,则“ dayOfWeek”为1,如果为星期二,则为2,依此类推。
var date=new Date();
getNextDayOfWeek(date, 2);
//这是为了找到下个星期二
function getNextDayOfWeek(date, dayOfWeek) {
// Code to check that date and dayOfWeek are valid left as an exercise ;)
var resultDate = new Date(date.getTime());
resultDate.setDate(date.getDate() + (7 + dayOfWeek - date.getDay()) % 7);
return resultDate;
}
希望对您有帮助,谢谢