Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP<;5.3两次小时差::分钟_Php_Datetime_Date_Datediff - Fatal编程技术网

PHP<;5.3两次小时差::分钟

PHP<;5.3两次小时差::分钟,php,datetime,date,datediff,Php,Datetime,Date,Datediff,不幸的是,我不能使用DateTime::Diff,我正在寻找一种方法来转换我当前的DateTime格式,这样我就可以减去并找到以小时和分钟为单位的差异,如下所示: // 2:11pm 2-20-2012 $opendate = '2012-02-20T14:11:03-05:00'; // 6:22pm 2-20-2012 $closedate = '2012-02-20T18:22:50-05:00'; $diff_date = $closedate - $opendate 我希望$di

不幸的是,我不能使用
DateTime::Diff
,我正在寻找一种方法来转换我当前的DateTime格式,这样我就可以减去并找到以小时和分钟为单位的差异,如下所示:

// 2:11pm 2-20-2012
$opendate = '2012-02-20T14:11:03-05:00';

// 6:22pm 2-20-2012
$closedate = '2012-02-20T18:22:50-05:00';

$diff_date = $closedate - $opendate
我希望
$diff_date
以小时::分钟格式返回,例如“4小时11分钟”

如果这样做是有益的,那么上述时间格式的另一个替代方案是:

        $removeT = "T";
        $replaceSPACE = " ";
//returns datetime like '2012-02-20 14:11:03'
        $r = str_replace($removeT, $replaceSPACE, $opendate[$i]);
        $r = substr($r, 0, 19);
//returns datetime like '2012-02-20 18:22:50'
        $s = str_replace($removeT, $replaceSPACE, $closedate[$i]);
        $s = substr($s, 0, 19);

将两者转换为UNIX时间戳,然后从另一个时间戳中减去一个时间戳。您可以很容易地将结果转换为小时和分钟

$secondsDiff = strtotime($closedate) - strtotime($opendate);

看看这个,这应该会给你你所需要的:好吧,我对php非常陌生,但据我所知,我会使用
mktime()
将这些时间“值”转换为UNIX?这非常有效,可以将其转换为秒。我会用数学计算出小时和分钟,谢谢。当您拥有每个时间组件(小时、分钟等)时,您可以使用
mktime()
strotime()
尝试将格式化的时间字符串解析为时间戳(与
date()
结合使用非常有用)。