簡體   English   中英

日期不能使用strtotime正確格式化

[英]date not formatting properly using strtotime

我的日期格式不正確。 我的日期顯示為2016-02-08 2016-02-12,但我希望它顯示為2月22日2月26日,這是它將顯示消息的下一整天。 這是我的代碼。

$StartDate = strtotime('2016-01-25');
        $EndDate = strtotime('2016-01-29');
        $CurDate = date("Y-m-d");
        $NextDate = date("Y-m-d", strtotime("+2 week", $StartDate));
        $PayDate = date("Y-m-d", strtotime("+2 week", $EndDate));
        while ($CurDate > $NextDate && $CurDate > $PayDate) { 
        $NextDate = date("F j", strtotime("+2 week", strtotime($NextDate)));
        $PayDate = date("F j", strtotime("+2 week", strtotime($PayDate))); }

該代碼有效,但問題似乎出在

while ($CurDate > $NextDate && $CurDate > $PayDate) {

如果將$CurDate > $PayDate$CurDate < $PayDate ,它將顯示我想要的日期,但是會將日期推后幾周。 謝謝冷杉的任何幫助。

我建議使用OOP方法。 此操作與上述操作相同,但更加簡潔易讀,並且輸出的日期為2月22日至2月26日:

<?php
//START / END DATES
$startDate = new DateTime('2016-01-25');
$endDate = new DateTime('2016-01-29');

//TODAY 
$curDate = new DateTime('NOW');

//TWO WEEKS FROM START AND END DATE
$nextDate = $startDate->modify('+2 weeks');
$payDate = $endDate->modify('+2 weeks');

echo 'current pay period: '. $nextDate->format('F j').' - ';
echo $payDat->format('F j').'<br>';

while ($curDate->getTimestamp() > $nextDate->getTimestamp() && $curDate->getTimestamp() < $payDate->getTimestamp()) {
    echo 'next pay period: '. $nextDate->modify('+2 weeks')->format('F j').' - ';
    echo $payDate->modify('+2 weeks')->format('F j').'<br>';
}
?>

抱歉,如果這不是您想要的答案,我只是使用您的代碼並將其轉換為OOP,然后輸出您想要的日期。

暫無
暫無

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

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