我有一个输入字段,我在文字的截止日期输入。例如,“5分钟”,“2天”,“6周”,“8个月”。我想让程序做的是计算截止日期结束所需的时间。并且如果该截止日期即将结束,例如,如果已经过了80%的给定时间。
我在想像php那样在几秒钟内分割给定时间,然后检查在这些秒内适合多少分钟,小时或天,然后将其放入dateTime。像当前日期+输入= futureDate。
我知道我可能不应该使用百分比,这只是一个例子。
<input type="text" name="getFutureTime">
<?php
$futureTime = $_POST['getFutureTime'];
$dateNow = date('d-m-Y H:i:s');
if($futureTime > $dateNow){
//Calculate
echo "Deadline has passed";
}else if (($futureTime / 100 * 80) < $dateNow){
//Calculate
echo "Deadline is almost passed";
}
?>
答案 0 :(得分:0)
这里的值是string
,你不能比较那样。首先将它们转换为timestamp
。试试 -
$futureTime = strtotime($_POST['getFutureTime']);
$dateNow = time();
答案 1 :(得分:0)
我有一个解决方案,计算以后的日期:)...,将其复制到localhost并运行:) diff
$d1=new DateTime("now");
$d2=new DateTime($_POST['DateInput']);
$diff = $d1->diff($d2);
echo "<pre>";
print_r($diff);
echo "</pre>";
$date = $diff->format('%d'); //It date
$year = $diff->format('%y'); //It year
$month = $diff->format('%m'); //It month
echo $diff->format('%a'). "<br/>";
foreach($diff as $key => $value){
echo $key . "<br/>";
echo $value;
}
$value = strtotime('14/12/2012');
echo($value);
<强>更新强>
$ diff-&gt;格式('%a')//从现在开始的日期示例10/12/2015 - 2015年10月5日= 7
$ diff-&gt;格式('%a')是7
答案 2 :(得分:0)
试试这个会起作用:
$date_a = new DateTime('2015-05-07 13:03:48');
$date_b = new DateTime('2015-02-04 13:03:41');
$interval = date_diff($date_a,$date_b);
echo $interval->format('%m Months %d Days %h Hours %i Minutes %s Seconds');