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