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

时间:2009-07-27 15:09:45

标签: php datetime

我想找一个星期一,星期二,星期三等的日期戳。如果那一天还未来这个星期,我希望这个星期是本周,否则,下周。谢谢!

10 个答案:

答案 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次,每次获取时间戳,获取相应的日期,然后从中获取星期几。