如何在php javascript中在数组中存储日期和时间序列?

如何在php javascript中在数组中存储日期和时间序列?,javascript,php,datetime,strtotime,Javascript,Php,Datetime,Strtotime,我有一个数据库,其中存储在一个字段中的数据为“startdata”,第二个字段中的时间为“starttime”,第二个字段中的频率为:“每2天”或“每2小时”,最后是第三个字段中的“Update”(+4天)和一个字段中的“UptimeTime”(+48小时) 我想要一个php页面,当今天是范围startdate-->Update中的一个日期时显示警报,如果不是,则告诉我下一个警报还有多少天/小时” 我第一次想到的只是考虑数据字段。 我将从startdate开始到“Update”字段的所有数据/时

我有一个数据库,其中存储在一个字段中的数据为“startdata”,第二个字段中的时间为“starttime”,第二个字段中的频率为:“每2天”或“每2小时”,最后是第三个字段中的“Update”(+4天)和一个字段中的“UptimeTime”(+48小时)

我想要一个php页面,当今天是范围startdate-->Update中的一个日期时显示警报,如果不是,则告诉我下一个警报还有多少天/小时”

我第一次想到的只是考虑数据字段。 我将从startdate开始到“Update”字段的所有数据/时间以“while”周期存储在一个数组中(即startdate 07/13和+4天-->范围为:07/13-->07/15-->07/17)

我计算enddata:

$endg = strtotime ( "+". $dataupto . " days", strtotime ( $row['startdate'] ) ) ; 
从startdata开始,以enddata结束,在每个步骤中,我都执行以下操作:

while (startdata  up to enddata){
    tempdata = startdata + frequence
    arraymonitor[] = tempdata
}
我的代码是:

$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 "</br> tempg in while:";
            echo $tempg .  " ";

            echo "</br> tempg in while 2:";
            echo  date ( 'Y/m/d' , $tempg ) .  "<br/>";                     


        }
和订购:

rsort($arraytemp); 

print(" </br> ordered array");
print_r($arraytemp);
rsort($arraytemp);
打印(“
有序数组”); 打印($arraytemp);
在这里,我在arraymonitor中搜索并比较今天的日期与其他日期,并计算距离第二天还有多少天:

if ( in_array($today, $arraymonitor) ){
    echo "Today u have to monitor";

}else{
    //calculate how many days remaining to the next day


    $arraytemp = $arraymonitor;             
    $arraytemp[]= strtotime($today);   //I add today date in the array      
    rsort($arraytemp); //I ordered the array    
    print(" </br> orderedarray ");
    print_r($arraytemp);
    $keytoday = array_search($oggi, $arraystore);   // I find the data-today key    
    $proxmonitor = $arraystore[$chiaveoggi+1];   // I add "1" that it is the next day, **right**?
if(在数组中($today$arraymonitor)){
回声“今天你必须监视”;
}否则{
//计算下一天还有多少天
$arraytemp=$arraymonitor;
$arraytemp[]=strotime($today);//我在数组中添加了今天的日期
rsort($arraytemp);//我对数组进行了排序
打印(“
orderedarray”); 打印($arraytemp); $keytoday=array_search($oggi,$arraystore);//我找到了data today键 $proxmonitor=$arraystore[$chiaveoggi+1];//我加上“1”表示这是第二天,**对吧**?
我在这里打印结果:

    echo " </br> prox day monitor ";
    print(date("Y/m/d",$proxmonitor));  

    $timedayforthenextdata = $proxmonitor - $today;   
    $timedayforthenextdata = (int) $timedayforthenextdata / 60/ 60/ 24;  
    echo "</br> Miss " . $timedayforthenextdata . " days/hours to the next monitoring";
echo“
prox日间监视器”; 打印(日期(“Y/m/d”,“proxmonitor”); $timedayforthenextdata=$proxmonitor-$today; $timedayforthenextdata=(int)$timedayforthenextdata/60/60/24; echo“
未命中“$timedayforthenextdata.”到下一次监视的天数/小时数”;
我在“while”循环中出错,因为它没有存储所有数据! 为什么?我哪里错了?还有别的解决办法吗

我的所有代码:

<?php   
$oggi = date("Y/m/d");

foreach($db->query("SELECT startdate, starthour dataupto, hourupto dataevery, hourevery FROM event ") as $row) { 
    #echo $row['annotazione'].' '.$row['Prescrizione']; //etc...



    $monitevery = $row['dataevery'];
    $monitupto = $row['dataupto'];


    $start = $row['startdata'];

    $today = date('Y/m/d');


    $today2 = strtotime($row['startdata']);
    $today2 = strtotime($today);

    echo "start monitor ";
    echo $row['startdate'];
    echo "</br> oggi ";
    echo $today;                    
    $ris = $today2 - $start2;
    $rishour =  (int) ($ris/ 60)/ 60;   // result in hours
    $risdays =  (int) $ris/ 60/ 60/ 24;   // result in hours
    echo "</br> result ";
    echo $risdays;
    //echo gettype($a);
    //echo gettype($b);                 


    $elapseddays = (int) ( strtotime($today) - strtotime($row['startdate'])    )/60/ 60/ 24 ;  //  //today less startdate i find how is passed
    $daysremained = ($row['startdate'] + $monitupto  ) - $today;   // ( startmonit+every = end day )- today =  how may days remains

    echo " <br/>";
    echo "today " .$oggi . "<br/>";
    echo "monitor start " . $row['stardate']. "<br/>";
    echo " days elapsed ";
    echo $elapseddays;   
    if ($elapseddays > 0){ 

        $firstcycleelapsed = strtotime($row['startdate']) + strtotime($row['dataevery']]);  // 20 + 2 = 22


        $dataupto = $row['dataupto'];  
        echo "</br>  dataupto ";
        echo $dataupto;

        $tempgSTR = strtotime($row['startdate']) ; 

        //end day
        $endg = strtotime ( "+". $dataupto . " days", strtotime ( $row['startdate'] ) ) ;     



        $endg = date ( 'Y/m/d' , $endg ); 
        $finegSTR = strtotime($fineg);
        echo " </br> tempg1 " . $row['startdate'] . "<br/>";
        echo " </br> tempg1STR " . $tempgSTR . "<br/>";
        echo " endg1 " . $endg . "<br/>";
        echo " endg1STR " . $endgSTR . "<br/>";


    }

        $arraymonitor = array();

        $tempg = strtotime($row['startdate']);  // i start with the startdate
        echo "</br> after IF dayselapsed>0, before  WHILE:  </br> tempg ";
        echo $tempg . " </br> endg " ;  //tempg e instrotime
        echo $finegSTR;

        $tempgdate = $row['startdate'] ;
        while( $tempg < $finegSTR){   

            $arraymonitor[] = strtotime(  date($tempgdate )    );

            $tempg = $tempg + (strtotime ( " +1 days", $tempg  ) ); 





            $arraymonitor[] = $tempg; 
            echo "</br> tempg in while:";
            echo $tempg .  " ";

            echo "</br> tempg in while 2:";
            echo  date ( 'Y/m/d' , $tempg ) .  "<br/>";                     


        }
        echo "</br>END WHILE:  array date: ";
        print_r($arraymonitor);


        if ( in_array($today, $arraymonitor) ){
            echo "otoday u have to monitor";

        }else{
            //calculate how many days remaining to the next day


            $arraytemp = $arraymonitor;

            $arraytemp[]= strtotime($today);   //i add today date in the array                      
            rsort($arraytemp); //I order the array

            print(" </br> orderedarray ");
            print_r($arraytemp);
            $keytoday = array_search($otoday, $arraytemp);   // i look for the key of today date

            $proxmonitor = $arraytemp[$keytoday+1];   // i add "1" to know what day is the next for showing the alert


            echo " </br> next day of monitor ";
            print(date("Y/m/d",$proxmonitor)); 

            $howmanydaysremain = $proxmonitor - $today;   
            $howmanydaysremain = (int) $howmanydaysremain  / 60/ 60/ 24;  
            echo "</br> reamining " . $howmanydaysremain  . " days  at next monitor";



        }  // end else

    }


}// end for each

?>

在第一个代码中,更改

while(){
    ...
    $tempg = $tempg + (strtotime ( " +1 days", $tempg  ) );
    ...
}


然后它将正确计算“+1天”,并将该日期存储到数组中
$arraymonitor

这其中的JavaScript部分是什么?我用php做了这件事,但如果我也能用JavaScript解决它,那就好了!
while(){
    ...
    $tempg = $tempg + (strtotime ( " +1 days", $tempg  ) );
    ...
}
while(){
    ...
    $tempg = strtotime ( " +1 days", $tempg  );
    ...
}