【发布时间】:2009-07-27 15:09:44
【问题描述】:
我想找到星期一、星期二、星期三等的日期戳。如果这一天还没有到来,我希望日期是本周,否则,下周。谢谢!
【问题讨论】:
我想找到星期一、星期二、星期三等的日期戳。如果这一天还没有到来,我希望日期是本周,否则,下周。谢谢!
【问题讨论】:
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 手册 - clone
【讨论】:
问题被标记为“php”,正如 Tom 所说,这样做的方法如下所示:
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
【讨论】:
您可以使用 Carbon 库。
示例:下周星期五
Carbon::parse("friday next week");
【讨论】:
PHP 7.1:
$next_date = new DateTime('next Thursday');
$stamp = $next_date->getTimestamp();
PHP手册getTimestamp()
【讨论】:
抱歉,我没有注意到 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
【讨论】:
如果我理解正确,您想要接下来 7 天的日期吗?
您可以执行以下操作:
for ($i = 0; $i < 7; $i++)
echo date('d/m/y', time() + 86400 * $i);
查看日期函数的文档以获取您想要的格式。
【讨论】:
如果你想找到星期一,那么 '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;
}
希望对你有帮助,谢谢
【讨论】:
PHP documentation for time() 展示了如何在一周后约会的示例。您可以修改它,改为进入一个最多迭代 7 次的循环,每次获取时间戳,获取相应的日期,然后从中获取星期几。
【讨论】: