用户动态输入2个日期并获得天数差异

时间:2014-02-04 10:24:41

标签: php date date-difference

我想要实现的基本上是用户将输入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>

请指出我应该做出的所有改变。提前谢谢。

2 个答案:

答案 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是天数的差异。