Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果最后一天是周末,则用于选择第二天的功能_Php_Date_Datetime_Strtotime_Weekend - Fatal编程技术网

Php 如果最后一天是周末,则用于选择第二天的功能

Php 如果最后一天是周末,则用于选择第二天的功能,php,date,datetime,strtotime,weekend,Php,Date,Datetime,Strtotime,Weekend,我正在尝试创建一个检查日期范围的函数。如果最后一天是周末,它将选择第二天。假设今天是2016年3月1日。如果有人加上5,结果将是2016年3月7日。因为3月6日是周末。我已经写了这段代码。但它不起作用,我找不到问题出在哪里。代码如下: <?php $date = "2016-02-29"; $numOfDays = 8; $futureDate = strtolower(date("l",strtotime($date." +".$numOfDays."days"))); $weekend

我正在尝试创建一个检查日期范围的函数。如果最后一天是周末,它将选择第二天。假设今天是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;
?>
<?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年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年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);
?>

检查以下内容:

  <?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;
?>

检查以下内容:

  <?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;
?>

@Fakhruddin Ujjainwala 我已经改变了你的代码,它现在工作得很完美。谢谢代码如下:

<?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;
?>
<?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;
?>

@Fakhruddin Ujjainwala 我已经改变了你的代码,它现在工作得很完美。谢谢代码如下:

<?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;
?>
<?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;
?>



你的意思是写
$w1
而不是
$$w1
是的..我是说$w1。检查代码。变量的名称已更改。@MuminurRahman请查看我的代码。这是根据你的代码进一步修改的。你的意思是写
$w1
而不是
$$w1
是的..我是说$w1。检查代码。变量的名称已更改。@MuminurRahman请查看我的代码。这是根据你的代码修改的。非常感谢。它工作的很好,因为我正在努力使。但问题是:当我输入大于6的数字时,它不起作用,只加一天。您能解释一下吗?是的,
strotime()
函数将日期字符串转换为unix时间戳(时间量,以秒为单位,自1970年1月1日起)。
strotime()
函数无法进行算术运算,并且不知道如何解释“+8天”,因此必须将日期转换为时间戳,然后我们可以为未来日期添加所需的时间量(以秒为单位)。感谢您宝贵的解释…:)谢谢。它工作的很好,因为我正在努力使。但问题是:当我输入大于6的数字时,它不起作用,只加一天。您能解释一下吗?是的,
strotime()
函数将日期字符串转换为unix时间戳(时间量,以秒为单位,自1970年1月1日起)。
strotime()
函数无法进行算术运算,并且不知道如何解释“+8天”,因此必须将日期转换为时间戳,然后我们可以为未来日期添加所需的时间量(以秒为单位)。感谢您宝贵的解释…:)谢谢你的评论。这不正常。如果一天是周末,它不会选择第二天。你认为星期五和星期六是周末还是星期六和星期日?上述代码将为您提供2016-03-13,因为11和12是星期五和星期五saturday@MuminurRahman我的最新代码?在2016-03-13的节目中查看它是的……它正在工作。谢谢。:)我想,我的IDE中有一个问题。@MuminurRahman欢迎:)请您接受我的回答。谢谢您的评论。这不正常。如果一天是周末,它不会选择第二天。你认为星期五和星期六是周末还是星期六和星期日?上述代码将为您提供2016-03-13,因为11和12是星期五和星期五saturday@MuminurRahman我的最新代码?在2016-03-13的节目中查看它是的……它正在工作。谢谢。:)我想,我的IDE中有一个问题。@MuminurRahman欢迎:)请您接受我的回答。