Php 用户动态输入2个日期,并以天为差
我试图实现的基本上是用户将输入2个日期,并在几天内返回差异。我在SO中看到了其他相关问题,但没有人回答我的问题 以下是我的代码:Php 用户动态输入2个日期,并以天为差,php,date,date-difference,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($end
<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>
您可以使用和进行日期计算。做起来容易多了
但如果要使用date()
:
date()
函数获取第二个参数作为时间戳,并返回日期:1970-1-1 00:00:00 GMT
+给定时间戳
,请注意GMT部分。
这意味着如果您的时区为+2,则回显日期(“Y-m-d H:i:s”,0)
返回1970-1-1 2:00:00
,非1970-1-1 00:00
因此,你得到的结果是(真正不同的)+2小时(你的时区)。如果坚持使用date()
获取结果,则必须将最后几行更改为:
$number = floor( ( $datediff-$YOUR_TIME_ZONE ) /(60*60*24));
为什么要做for循环
$number = floor($datediff/(60*60*24));
$number
是以天为单位的差异。$number
已包含天数。你还想要什么?但是我想要输出为一个数字(例如14,如果两个日期之间的差值为14天),我尝试了echo count($number),但是没有得到我想要的,你不需要计数$这个数字包含了不同的日子。我注意到在写作时,我感到非常尴尬。这是一个愚蠢的错误。