-2

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

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

4

2 回答 2

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

因此,您得到的结果是 (real different) + 2 hours (your time zone) 。如果您坚持使用 获得结果date(),则必须将最后几行更改为:

$number = floor( ( $datediff-$YOUR_TIME_ZONE ) /(60*60*24));

于 2014-02-04T10:30:09.343 回答
0

你为什么做for循环?

$number = floor($datediff/(60*60*24));

$number是天的差异。

于 2014-02-04T10:34:06.810 回答