首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有星期日的PHP打印日期

没有星期日的PHP打印日期
EN

Stack Overflow用户
提问于 2017-04-20 12:48:35
回答 4查看 988关注 0票数 0

我有这个输入字段的表单

代码语言:javascript
运行
复制
<input type="text" name="txt_datetimein" class="form-control datetime">
<input type="text" name="txt_datetimeout" class="form-control datetime">
<input type="text" name="txt_lenght" class="form-control">

我输入第一个日期和第二个日期,长度,长度,精确的重复次数。

比我点击next的时间更长,我一整天都没有星期天

例如,如果我将5放入长度和日期时间( 01-04-2017 ),8:00:00,而日期超时( 01-04-2017 ) 5:00:00

输出会是这样的

代码语言:javascript
运行
复制
    Date IN             Date Out           Day
01-04-2017 8:00:00  01-04-2017 5:00:00   Saturday
03-04-2017 8:00:00  03-04-2017 5:00:00   Monday
04-04-2017 8:00:00  04-04-2017 5:00:00   Tuesday
05-04-2017 8:00:00  05-04-2017 5:00:00   Wednesday
06-04-2017 8:00:00  06-04-2017 5:00:00   Thursday
07-04-2017 8:00:00  07-04-2017 5:00:00   Friday

这是我的代码,但整天都在打印

代码语言:javascript
运行
复制
<?php
    for($i=0;$i<=$lenght;$i++) {
        $date = date('m/d/Y H:i:s', strtotime("+$i days", strtotime($datetimein)));   
        $edate = date('m/d/Y H:i:s', strtotime("+$i days", strtotime( $datetimeout))); 
        $is_sunday = date('l', strtotime($date)) == 'Sunday';             
        if ($is_sunday) {             
            $day = date('l', strtotime("+1+$i days",strtotime($datetimein)));
        }
        else {
            $day = date('l', strtotime("+$i days",strtotime($datetimein)));
        }  
    }
?>

我怎样才能解决我的问题?!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-04-20 13:04:56

试试下面的代码

代码语言:javascript
运行
复制
$datetimein = "01-04-2017 8:00:00";
    $datetimeout = "01-04-2017 5:00:00";
    $lenght = 20;
    for($i=0;$i<=$lenght;$i++) {
        $date = date('m/d/Y H:i:s', strtotime("+$i days", strtotime($datetimein)));   
        $edate = date('m/d/Y H:i:s', strtotime("+$i days", strtotime( $datetimeout))); 
        $is_sunday = date('l', strtotime($date)); 
        if($is_sunday == "Sunday")
        {
            $i=$i+1;
        }
        $day = date('l', strtotime("$i days",strtotime($datetimein)));   

        echo $day."<br>";
    }
票数 1
EN

Stack Overflow用户

发布于 2017-04-20 12:59:45

使用DateTime和所有这些对象。更简单、更清洁:)

代码语言:javascript
运行
复制
<?php

$begin = new DateTime();
$end = clone $begin;
$end = $end->modify('+14 day'); 

$interval = new DateInterval('P1D');
$range = new DatePeriod($begin, $interval ,$end);

foreach($range as $date) {
    if ($date->format('N') !== 7) {
        echo $date->format('Y-m-d'), '<br>';
    }
}

Date format N是指一周中的一天,它是7 === Sunday的一个数字。

票数 1
EN

Stack Overflow用户

发布于 2017-04-20 13:49:35

这是你的心愿

代码语言:javascript
运行
复制
$datetimein =   '01-04-2017 8:00:00';
$datetimeout=   '01-04-2017 5:00:00';
$lenght =   5;

$i=0;
$days   =   array();
$dt =   strtotime($datetimein);
while($i < $lenght){
    if(date('D',$dt)!='Sun'){
        $days[] =   date('Y-m-d D',$dt);        
        $i++;
    }
    $dt     =   $dt+24*3600;
}

print_r($days);

在这一行中,$days[] = date('Y-m-d D',$dt);更改格式,或者任意保存进出时间。$days会给你预定的日期。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43520023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档