时间周和日转换

时间:2016-08-02 19:40:28

标签: php

将日期转换为左,周,小时和月时,我遇到了问题。

这是我的代码:

$time_elapsed   = time() - $createDate;
$hours      = round($time_elapsed / 3600);
$days       = round($time_elapsed / 86400 );
$weeks      = round($time_elapsed / 604800);
$months     = round($time_elapsed / 2600640 );

但是当我显示例如$months时,我得到:565

$createDate =1470165198; // Created with time(); 15 minutes ago

假设显示0没有?因为他们之间差异大约15分钟。

2 个答案:

答案 0 :(得分:0)

$ create_date必须是整数而不是字符串 从而

$createDate = 1470165198; // no quotes

答案 1 :(得分:0)

如果您使用PHP DateTime类,可以像这样轻松完成

$start = new DateTime('2015-08-01 00:00:00');  // instead of your time()
$end = new DateTime('2016-09-02 01:01:01');

$interval = $start->diff($end);

echo $interval->format('%y year %m Months %d Days %i Minutes %s Seconds');

结果:

+1 year +1 Month +1 Day +1 Minute +1 Second

现在,如果您所需的输出不同,您可以根据需要使用格式。

使用您的$createDate = time()时间戳初始化DateTime对象: -

$start = new DateTime();
$start->setTimestamp($createDate);
$end = new DateTime('now');

$interval = $start->diff($end);
echo $interval->format('%y year %m Months %d Days %i Minutes %s Seconds');
  

PHP DateTime Manual