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

时间:2016-02-09 21:41:08

标签: php

我的日期格式不正确。我的日期显示为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,它会显示我想要的日期,但会将日期推送到数周。感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我建议使用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并输出你想要的日期。