Php 计算两个给定日期之间的天数
有人能纠正我脚本中的错误,计算两个日期之间的天数吗。 日期已通过表格输入,变量信息如下:Php 计算两个给定日期之间的天数,php,date,Php,Date,有人能纠正我脚本中的错误,计算两个日期之间的天数吗。 日期已通过表格输入,变量信息如下: [departon] => Array ( [0] => 1 [1] => June [2] => 2011 ) [returnon] => Array ( [0] => 31 [1] => June [2] => 2011 ) 我已经编写了计算这些日期的代码,但它不计算日期,它只输出0 <?php $first_date = mktime
[departon] => Array ( [0] => 1 [1] => June [2] => 2011 )
[returnon] => Array ( [0] => 31 [1] => June [2] => 2011 )
我已经编写了计算这些日期的代码,但它不计算日期,它只输出0
<?php
$first_date = mktime(12, 0, 0, $_POST['departon'][1], $_POST['departon'][0], $_POST['departon'][2]);
$second_date = mktime(12, 0, 0, $_POST['returnon'][1], $_POST['returnon'][0], $_POST['returnon'][2]);
$days = $second_date-$first_date;
echo floor($days/60/60/24) . " days";
?>
非常感谢您的帮助 指定了月份的数字,因此您需要将“June”转换为“6”。指定了月份的数字,因此您需要将“June”转换为“6”。这里有一个简单的方法:
$depart = strtotime(implode(' ', $_POST['departon']));
$return = strtotime(implode(' ', $_POST['returnon']));
$diff = floor(($return - $depart) / (60 * 60 * 24));
注意:六月只有30天。这里有一个简单的方法:
$depart = strtotime(implode(' ', $_POST['departon']));
$return = strtotime(implode(' ', $_POST['returnon']));
$diff = floor(($return - $depart) / (60 * 60 * 24));
注意:六月只有30天。最简单的方法是使用日期时间 考虑这一点:
var_dump(new DateTime('1 July 2007'));
$a = new DateTime('1 July 2007');
$b = new DateTime('1 June 2001');
var_dump($a->diff($b));
var_转储将允许您查看可以从中提取的不同类型的时间
object(DateInterval)[3]
public 'y' => int 6
public 'm' => int 1
public 'd' => int 0
public 'h' => int 0
public 'i' => int 0
public 's' => int 0
public 'invert' => int 1
public 'days' => int 2221
最简单的方法是使用datetimes 考虑这一点:
var_dump(new DateTime('1 July 2007'));
$a = new DateTime('1 July 2007');
$b = new DateTime('1 June 2001');
var_dump($a->diff($b));
var_转储将允许您查看可以从中提取的不同类型的时间
object(DateInterval)[3]
public 'y' => int 6
public 'm' => int 1
public 'd' => int 0
public 'h' => int 0
public 'i' => int 0
public 's' => int 0
public 'invert' => int 1
public 'days' => int 2221
嗨,兰斯,你能再详细解释一下这一点吗?第四个参数是月份:$\u POST['departion'][1]。。。。。。我的代码中有错误吗?或者我只是没有抓住要点?@新手,是的,我发现了我的错误并修改了我的答案。你似乎给mktime一个月的值是‘June’,而不是数字6。哦,好的,谢谢。我将尝试转换,欢迎更多帮助。嗨,兰斯,你能再详细说明一下这一点吗?第四个参数是月份:$\u POST['departion'][1]。。。。。。我的代码中有错误吗?或者我只是没有抓住要点?@新手,是的,我发现了我的错误并修改了我的答案。你似乎给mktime一个月的值是‘June’,而不是数字6。哦,好的,谢谢。将尝试转换,欢迎提供更多帮助。请注意,在堆栈溢出时,您不需要输入诸如“Hello”、“Thank in Prevance”和“help将不胜感激”之类的内容。这不是一个论坛,我们只是在这里进行问答。请注意,在堆栈溢出上,您不需要输入诸如“您好”、“提前感谢”和“非常感谢您的帮助”之类的内容。“这不是一个论坛,我们只是在这里进行问答。这是我刚要发布的解决方案,但你抢先了我一步,@netcoder。”。“干得好。这是我正要发布的解决方案,但你抢先了我一步,@netcoder。”。做得好。