如何在php中管理日期顺序以显示距离下一个日期还有多少天?

10 浏览
0 Comments

如何在php中管理日期顺序以显示距离下一个日期还有多少天?

我有一个开始日期为07/18/2014,结束日期为07/24/2014,周期日期为每2天。

所以,从07/18开始,每2天我向用户发出警告,提醒他们要做某件事情,如果不是正确的日期,我会提醒用户距离下一个警告还有多少天。

我该怎么做?如果还要加上时间和每2小时的周期呢?

我考虑先将所有的警告日期存储在一个数组中[07-18/2014, 07-20-2014, 07-22-2014, 07/24/2014]

我的代码如下,但它不起作用。可能我使用strtotime的方式不正确:

$endg = strtotime ( "+". $dataupto . " days", strtotime ( $row['startdate'] ) ) ;     
$endg = date ( 'Y/m/d' , $endg ); 
$endgSTR = strtotime($endg);
$tempg = strtotime($row['startdate']); 
while( $tempg < $endgSTR){ 
        $arraymonitor[] = strtotime(  date($tempgdate )    );
        $tempg = $tempg + (strtotime ( " +1 days", $tempg  ) ); 
        $arraymonitor[] = $tempg; 
        echo "
tempg in while:"; echo $tempg . " "; echo "
tempg in while 2:"; echo date ( 'Y/m/d' , $tempg ) . ""; }

我也接受其他建议!

更新解决方案:

header( "content-type: text-plain" );
function dayDiff($start, $end){
    $timeleft = $end - $start;
    $daysleft = round((($timeleft/24)/60)/60);
    return $daysleft;
}
function testWarning($today, $end, $delay){
    $endDate     = strtotime($end);
    $warningDate = $endDate; 
    $todayDate   = strtotime($today);
    if( $todayDate == $warningDate ){
        echo "Oggi c'è un controllo da fare";
    }elseif( $todayDate < $warningDate ){
        echo "Miss " . dayDiff($todayDate, $warningDate) . " days";
    }else{
        echo "warning was " . abs(dayDiff($todayDate, $warningDate)) . " giorni fa";
    }
    echo"\n";
}
$ardata =  [07/18/2014, 07/20/2014, 07/22/2014, 07/24/2014];
$today3 = "07/21/2014"; // 警告后的一天
testWarning( $today3, $end, $delay );
$diffmin = 1000;                                        
for ($i = 0 ; $i<= count($ardata)-1; $i++){
    //print_r($ardata);
    echo "

ardata "; echo $ardata[$i]; $dataseq = date ( 'm/d/Y' , strtotime($ardata[$i]) ); $diffdata = dayDiff( strtotime($today3), strtotime($dataseq) ); echo "

DIFFDATA: "; echo $diffdata; echo " DIFFMIN "; echo $diffmin; if ($diffdata > 0){ // 避免今天之前的日期 if ($diffdata < $diffmin){ $diffmin = $diffdata; $nextdata = $ardata[$i]; }else{ if ($diffdata == -1){ echo "error array empty"; $nextdata = $today3; } } }else{ echo "monitorterminato"; $nextdata = -1; } } if ($nextdata != -1){ if ($diffmin == 0){ // 今天的日期,所以警告 echo "warning WARNING

"; }else if ($diffmin > 0 ){ echo " oggi ". $today3." prossimo:". $nextdata. "

"; testWarning( $today3, $nextdata, $delay ); }else{ // 错误情况 echo "

ERRORE nel calcolo non può essere negativo"; } }

0
0 Comments

问题的原因是用户想要在PHP中管理一个日期序列,并显示距离下一个日期还剩多少天。用户在问题中提到了一个解决方法,但他不知道如何确定下一个日期。

解决方法是首先生成4个不同的“警告”日期,并将它们存储在某个地方。然后,用户可以使用日期比较函数来确定下一个日期。以下是解决问题的代码示例:

$dates = array('2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01');
$today = date('Y-m-d');
$nextDate = null;
foreach ($dates as $date) {
    if ($date > $today) {
        $nextDate = $date;
        break;
    }
}
if ($nextDate) {
    $future = strtotime($nextDate);
    $timefromdb = strtotime($today);
    $timeleft = $future - $timefromdb;
    $daysleft = round(($timeleft / (24 * 60 * 60)), 0);
    echo $daysleft;
} else {
    echo "No future dates found.";
}

上述代码首先创建了一个包含4个不同日期的数组。然后,它获取当前日期,并使用循环遍历数组来找到下一个日期。一旦找到下一个日期,就可以使用之前提到的代码来计算剩余的天数。

这样,用户就可以管理日期序列,并显示距离下一个日期还有多少天。

0
0 Comments

问题的出现原因是需要计算距离下一个日期还有多少天,并将其显示出来。解决方法是使用PHP编程语言来实现这个功能。

首先,我们需要定义一个结束日期和一个延迟天数。然后,使用strtotime函数将延迟天数应用于结束日期,得到警告日期。接下来,我们可以定义一个函数testWarning来计算给定日期与警告日期之间的天数差,并根据天数差来显示相应的警告信息。

在函数中,我们首先将给定日期和警告日期转换为时间戳格式。然后,我们比较这两个时间戳,根据比较结果来显示相应的警告信息。如果给定日期等于警告日期,则显示"Warning is today";如果给定日期小于警告日期,则显示"Warning in X days",其中X为给定日期与警告日期之间的天数差;如果给定日期大于警告日期,则显示"Warning was X days ago",其中X为给定日期与警告日期之间的天数差的绝对值。

最后,我们可以定义一个dayDiff函数来计算给定时间戳之间的天数差。这个函数首先计算时间差(以秒为单位),然后将其转换为天数。

通过以上的解决方法,我们可以对给定的日期序列进行警告天数的计算和显示。

0