获取下一个星期一,星期二等的date
我想find星期一,星期二,星期三等等的date标记。如果那一天还没有到来,我希望下个星期这个星期。 谢谢!
见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('Ym-d');
好的是,你也可以用今天以外的date来做这件事:
// Create a new DateTime object $date = new DateTime('2006-05-20'); // Modify the date it contains $date->modify('next monday'); // Output echo $date->format('Ym-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('Ym-d')."<br />"; }
参考
PHP手册 – date时间
PHP手册 – DateInterval
PHP手册 – DatePeriod
PHP手册 – 克隆
问题被标记为“php”,所以汤姆说,这样做的方式看起来像这样:
date('Ym-d', strtotime('next tuesday'));
抱歉,我没有注意到PHP标签 – 但是其他人可能对VB解决scheme感兴趣:
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
如果我正确理解你,你想要在未来7天的date?
你可以做到以下几点:
for ($i = 0; $i < 7; $i++) echo date('d/m/y', time() + 86400 * $i);
查看date函数的文档,find您需要的格式。
time()的PHP文档显示了一个如何获得一个星期的date的例子。 你可以修改它,而不是进入一个循环迭代最多7次,每次获得时间戳,获得相应的date,从那得到星期几。
如果你想查找星期一,那么'dayOfWeek'是1,如果星期二是2,依此类推。
var date=new Date(); getNextDayOfWeek(date, 2);
//这是为了find下个星期二
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; }
希望这会对你有所帮助,谢谢