今天和Unix时间戳之间的天数差异。

时间:2018-10-16 01:24:23

标签: php timestamp unix-timestamp datediff

那么首先要考虑的是DateDiff()了吗?

<?php

$date1 = strtotime(1766253900); // expiry date
$date2 = strtotime(1539652560); // todays date
$dtDiff = $date1 - $date2;
$totalDays = intval($dtDiff/(24*60*60));
echo $totalDays
?>

我尝试过这种方式,但是输出0零

3 个答案:

答案 0 :(得分:1)

这是使用DateTimeDateInterval类的方法:

// set expiry date
$date1 = (new DateTime())->setTimestamp(1766253900);
// today's date
$date2 = new DateTime();
$diff = $date1->diff($date2);
echo $diff->days;

输出(截至2018年10月15日)

2622

答案 1 :(得分:0)

只需删除strtotime,因为两个日期都已经是UNIX时间戳,即自1970年以来的秒数

<?php

$date1 = 1766253900; // expiry date
$date2 = 1539652560; // todays date
$dtDiff = $date1 - $date2;
$totalDays = intval($dtDiff/(24*60*60));
echo $totalDays
?>

答案 2 :(得分:0)

因为您输入的1766253900和1539652560已经是时间戳,所以strotime函数是使正常日期转换UNIX时间,因此您无需使用strotime将UNIX时间转换为UNIX时间

<?php
$date1 = 1766253900; //expiry date
$date2 = 1539652560; //todays date
$totalDays = intval(($date1-$date2)/(24*60*60));
print_r($totalDays);

您可以使用mysql函数将UNIX时间转换为正常时间

mysql> select from_unixtime(1766253900); #2025-12-21 02:05:00

但是您也可以使用mysql函数将正常时间转换为UNIX时间

mysql> select unix_timestamp('2025-12-21 02:05:00'); #1766253900