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