获取下周一,周二等的日期


Answers:


129

看到 strtotime()

strtotime('next tuesday');

通过查看星期数,您可能会发现自己是否已经过了这一天:

$nextTuesday = strtotime('next tuesday');
$weekNo = date('W');
$weekNoNextTuesday = date('W', $nextTuesday);

if ($weekNoNextTuesday != $weekNo) {
    //past tuesday
}

谢谢!这很有帮助。我只需要找出如何找出星期一是否已经到来。那不会太难!谢谢!
阿德里安·萨利

67

我知道这是一个较晚的答案,但我想补充我的答案以供将来参考。

// 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手册-克隆


好答案。需要更频繁地开始使用DateTime
Chuck Le Butt



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

我正在2020年2月14日尝试“下一个星期五”,并且返回2020年2月18日。似乎工作正常。
Naveen Saroye '20

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


1

如果我对您的理解正确,那么您想要接下来7天的日期吗?

您可以执行以下操作:

for ($i = 0; $i < 7; $i++)  
  echo date('d/m/y', time() + 86400 * $i);

检查日期函数的文档以获取所需的格式。


1

如果要查找星期一,则“ 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;
}

希望对您有帮助,谢谢


0

时间PHP文件()节目如何可以得到一个日起星期不在一个例子。您可以对其进行修改,以使其进入最多重复7次的循环,每次获取时间戳,获取对应的日期,并从该日期获取星期几。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.