我想要实现的基本上是用户将输入2个日期并以天为单位取回差异。我在SO中看到了其他相关问题,但没有人回答我的问题。
以下是我的代码:
<html>
<head>
<?php
$startdate = $_POST['startdate']; // starting date
$enddate = $_POST['enddate']; // end date
$now = strtotime($startdate);
$your_date = strtotime($enddate);
$datediff = $your_date - $now;
$number = floor($datediff/(60*60*24));
?>
</head>
<body>
<form name="date_form" action="" method="POST"">
<input type="text" name="startdate" value=""/>
<input type="text" name="enddate" value=""/>
<input type="submit" name="submit_start" value="Submit" />
</form>
</body>
</html>
请指出我应该做出的所有改变。提前谢谢。
答案 0 :(得分:0)
您可以使用DateTime()
和DateInterval()
进行日期数学运算。 很多更容易做到。
但是如果你想使用date()
:
date()
函数获取第二个参数作为时间戳并返回日期:1970-1-1 00:00:00 GMT
+ given time stamp
,注意 GMT 部分。
这意味着如果您的时区 +2 ,则echo date("Y-m-d H:i:s",0)
会返回1970-1-1 2:00:00
,不会 1970-1-1 00:00:00
。
所以,你得到的结果是(真正的不同) + 2 hours
(你的时区)。如果您坚持使用date()
获取结果,则必须将最后一行更改为:
$number = floor( ( $datediff-$YOUR_TIME_ZONE ) /(60*60*24));
答案 1 :(得分:0)
为什么要进行for循环?
$number = floor($datediff/(60*60*24));
$number
是天数的差异。