簡體   English   中英

在PHP下一個星期一獲得

[英]Get next to next monday in PHP

輸入日期后第二個星期一如何獲得? 我有解決方案,但不可行

$date = new DateTime();
$date->modify('next monday');
$next_monday = $date->format('Y-m-d');
$date = new DateTime($next_monday);
$date->modify('next monday');
$next_monday = $date->format('Y-m-d');

請建議我一些方法。

DateTime對象的modify方法采用與strtotime相同類型的參數。 您已經在使用'next monday' ,而只需要使用'second monday'

$date->modify('second monday');
echo $date->format('Y-m-d');

另外,如果您不知道這一點,可以將某些DateTime方法鏈接起來:

echo $date->modify('second monday')->format('Y-m-d');

您可以使用strtotime()但是如果您認為它太昂貴了,則可以使用dateDateInterval

$date = new DateTime('2017-02-15 13:03:00');
// move back to past Monday
$num = (date("w", $date->getTimestamp())) - 1;
$offset = new DateInterval("P{$num}D");
$offset->invert = 1;
// move forward two weeks
$interval = new DateInterval('P2W');
$next_second_monday = $date->add($offset)->add($interval);

$next_second_monday將是:

DateTime Object
(
    [date] => 2017-02-27 13:03:00.000000
    [timezone_type] => 3
    [timezone] => UTC
)

可能還有另一種方法,但是使用MomentPHP,您可以從今天的星期開始,添加1天(到星期一),然后再加上兩周,那么您將到達下一個星期一。
像這樣:

<?php
$m = \Moment\moment();
$sunday = $m->startOf('week');
$monday = $sunday->addDays(1);
$2nextMonday = $monday->addWeeks(2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM