0

我正在尝试创建一个检查日期范围的函数。如果最后一个日期是周末,它将选择第二天。假设今天是 2016 年 3 月 1 日。如果有人加上 5,则结果将是 2016 年 3 月 7 日。因为 3 月 6 日是周末。我已经写了这段代码。但它不起作用,我找不到问题出在哪里。代码如下:

<?php
$date = "2016-02-29";
$numOfDays = 8;
$futureDate = strtolower(date("l",strtotime($date." +".$numOfDays."days")));
$weekend1= "friday";
$weekend2= "saturday";

        if($futureDate != $$w1 || $futureDate != $w2){
            $finalDate = date("Y-m-d",strtotime($futureDate));
        }
        else{$finalDate = date("Y-m-d",strtotime($futureDate ."+1 day"));}

        echo $finalDate;
?>
4

3 回答 3

1

2016 年 3 月 6 日是星期日,但您要检查星期五和星期六,而周末则需要检查星期六和星期日。此外,您的变量名称需要匹配,对于星期六,您需要增加两天才能获得下一个工作日。

<?php
$date = "2016-02-29";
$numOfDays = 8;
$day = 86400;//one day is 86400 seconds
$time = strtotime($futureDate + $numOfDays * $day);//converts $futureDate to a UNIX timestamp
$futureDate = strtolower(date("l", $time));
$saturday = "saturday";
$sunday = "sunday";
if($futureDate == $saturday){
    $finalDate = date("Y-m-d", $time + 2 * $day);
}
else if($futureDate == $sunday){
    $finalDate = date("Y-m-d", $time + $day);
}
else{
    $finalDate = date("Y-m-d", $time);
}
echo($finalDate);
?>
于 2016-02-28T19:49:43.127 回答
1

检查这个:

  <?php
$date = "2016-02-29";
$numOfDays = 11;
$futureDate = strtolower(date("l",strtotime($date ."+".$numOfDays."days")));
$futureDate1 = strtolower(date("Y-m-d",strtotime($date ."+".$numOfDays."days")));
$weekend1= "friday";
$weekend2= "saturday";

if($futureDate == $weekend1){
      $finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+2 days"));
}
if ($futureDate == $weekend2){
      $finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+1 days"));
}

echo $finalDate1;
?>
于 2016-02-28T19:53:34.220 回答
0

@Fakhruddin Ujjainwala 我已经更改了您的代码,现在可以完美运行。谢谢。现在的代码如下:

<?php
$date = "2016-02-29";
$numOfDays = 4;
$futureDate = strtolower(date("l",strtotime($date ."+".$numOfDays."days")));
$futureDate1 = strtolower(date("Y-m-d",strtotime($date ."+".$numOfDays."days")));
$weekend1= "friday";
$weekend2= "saturday";

if($futureDate == $weekend1){
      $finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+2 days"));
}
else if ($futureDate == $weekend2){
      $finalDate1 = date("Y-m-d",strtotime($futureDate1 ."+1 days"));
}
else{
    $finalDate1 = date("Y-m-d",strtotime($futureDate1));
}

echo $finalDate1;
?>
于 2016-02-28T20:31:59.877 回答