我想找一个星期一,星期二,星期三等的日期戳。如果那一天还未来这个星期,我希望这个星期是本周,否则,下周。谢谢!
答案 0 :(得分:112)
请参阅strtotime()
strtotime('next tuesday');
你可以通过查看周数来了解你是否已经过去了一天:
$nextTuesday = strtotime('next tuesday');
$weekNo = date('W');
$weekNoNextTuesday = date('W', $nextTuesday);
if ($weekNoNextTuesday != $weekNo) {
//past tuesday
}
答案 1 :(得分:50)
我知道这是一个迟到的答案,但我想补充我的答案以供将来参考。
// 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手册 - clone
答案 2 :(得分:23)
这个问题被标记为“php”,正如汤姆所说,这样做的方式如下:
date('Y-m-d', strtotime('next tuesday'));
答案 3 :(得分:4)
由于某些原因,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
答案 4 :(得分:2)
抱歉,我没有注意到PHP标记 - 但是其他人可能对VB解决方案感兴趣:
Module Module1
Sub Main()
Dim d As Date = Now
Dim nextFriday As Date = DateAdd(DateInterval.Weekday, DayOfWeek.Friday - d.DayOfWeek(), Now)
Console.WriteLine("next friday is " & nextFriday)
Console.ReadLine()
End Sub
End Module
答案 5 :(得分:1)
如果我理解正确,你想要接下来7天的日期吗?
您可以执行以下操作:
for ($i = 0; $i < 7; $i++)
echo date('d/m/y', time() + 86400 * $i);
查看日期函数的文档,了解您希望的格式。
答案 6 :(得分:1)
如果你想在星期一找到那么一天的“周刊”。如果它是星期二,它是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;
}
希望这对您有所帮助,谢谢
答案 7 :(得分:1)
您可以使用 Carbon 库。
示例:下周五周五
Carbon::parse("friday next week");
答案 8 :(得分:1)
PHP 7.1:
$next_date = new DateTime('next Thursday');
$stamp = $next_date->getTimestamp();
PHP手册getTimestamp()
答案 9 :(得分:0)
PHP documentation for time()显示了一个如何在一周内获得约会的示例。您可以将其修改为循环,最多迭代7次,每次获取时间戳,获取相应的日期,然后从中获取星期几。