【问题标题】:Dates according to the number of days根据天数的日期
【发布时间】:2020-01-13 16:16:37
【问题描述】:

我想根据天数对日期进行分类,例如:每 1 个日期、每两个日期等等。

<?php

$date1= strtotime('2019-09-01');
$date2= strtotime('2020-06-30'); 

$nbjour=($date2-$date1)/60/60/24;

for($i=0; $i <= $nbjour; $i++) {

    setlocale(LC_TIME, "fr_FR");
    $day = strftime('%A',$date1);

         if ($day === 'Dimanche' || $day === 'Samedi') {
                  $date = strftime('%A %d %B %G',$date1). ' weekend';
            }
            else{
                  $date = strftime('%A %d %B %G',$date1);
            }
     echo $date;
     $date1+=60*60*24; 
     echo'<br />' ;
 }

我想得到这个结果

[01-09-2019
01-10-2019
01-12-2019
...
02-09-2019
02-10-2019
...
03-09-2019]

【问题讨论】:

    标签: php sorting date


    【解决方案1】:

    您的问题不清楚。

    如果您想更改打印日期的格式,只需将 '%A %d %B %G' 更改为 '%Y-%m-%d'

    如果您想更改顺序(首先按天排序),可以尝试以下操作:

    $date1 = new DateTime("2019-09-01");
    $date2 = new DateTime("2020-06-30");
    
    $arrayOfDates = [];
    
    while($date1 <= $date2) {
        $arrayOfDates[] = clone $date1;
    
        $date1->add(new DateInterval("P1D"));
    }
    
    usort($arrayOfDates, function($a, $b) {
        if( $a->format("j") !== $b->format("j") ) {
            return $a->format("j") - $b->format("j"); 
        }
    
        if($a < $b) {
            return -1;
        } elseif($a > $b) {
            return 1;
        }
    
        return 0;
    });
    
    foreach($arrayOfDates as $date) {
        echo $date->format("Y-m-d") . "<br/>";
    }
    

    那么这个周末的检测呢?

    【讨论】:

    • 关于周末检测,用于对周末进行排序。这已经解决了。谢谢你。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    相关资源
    最近更新 更多