PHP日期格式和2个日期之间的计数时间。

时间:2014-05-27 09:04:08

标签: php date format

我有一个约会,想要计算从现在到日期之间的时间。 另外我想以这个示例格式返回两个日期之间的时间:

4周和3天前。

这在PHP中可行吗?

我希望你们能帮助我!

3 个答案:

答案 0 :(得分:1)

这是一个例子:

<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>

将回复+2天。

来源:http://www.php.net/manual/en/datetime.diff.php

答案 1 :(得分:0)

确定两个日期之间的时间(以秒为单位):

strtotime($human_readable_date);

现在减去两个日期之间的时间

$seconds = strtotime1($date1) - strtotime1($date2);

现在从这些秒开始获得实际时间 您可以使用自己的格式获取此时间,只需更改此函数中的格式类型

即可
function formatSeconds( $seconds )
{
  $hours = 0;
  $milliseconds = str_replace( "0.", '', $seconds - floor( $seconds ) );

  if ( $seconds > 3600 )
  {
    $hours = floor( $seconds / 3600 );
  }
  $seconds = $seconds % 3600;


  return str_pad( $hours, 2, '0', STR_PAD_LEFT )
       . gmdate( ':i:s', $seconds )
       . ($milliseconds ? ".$milliseconds" : '')
  ;
}

答案 2 :(得分:0)

使用date_diff()和一点数学:

$now = new DateTime('now');
$date = new DateTime('2014-05-01');

// Total difference in days
$total_days = date_diff($now, $date)->format('%a');

// Get weeks
$weeks = floor($total_days / 7);

// Get days
$days = $total_days % 7;

echo $weeks . ' weeks and ' . $days . ' days ago';

输出:

3 weeks and 5 days ago

注意:

(1)date_diff()在PHP v 5.3及以上版本中有效。

(2)您可能需要使用DateTimeZone()

指定时区

SEE DEMO


OR,对于PHP版本&lt; 5.3,使用strtotime()

$now = time();
$date = strtotime('2014-05-01');

$total_days = floor(($now - $date)/60/60/24);

$weeks = floor($total_days / 7);

$days = $total_days % 7;

echo $weeks . ' weeks and ' . $days . ' days ago';

输出:

3 weeks and 5 days ago

SEE DEMO