Php 微时间到相对日期的转换

Php 微时间到相对日期的转换,php,microtime,relative-date,Php,Microtime,Relative Date,我从一个数据库接收到以下值,它是一个毫秒(microtime)值 1369057622.4679 我想用PHP将其输出为 三天前 从本质上讲,读取毫秒值并将其转换为相对日期字符串,任何人都可以建议一种简单的方法来执行此操作。您可以执行以下操作: $input = 1369057622.4679; $diff = floor(($input-time())/86400); // calculating the difference $result = abs($diff) . (abs($di

我从一个数据库接收到以下值,它是一个毫秒(microtime)值

1369057622.4679

我想用PHP将其输出为

三天前


从本质上讲,读取毫秒值并将其转换为相对日期字符串,任何人都可以建议一种简单的方法来执行此操作。

您可以执行以下操作:

$input = 1369057622.4679;

$diff = floor(($input-time())/86400); // calculating the difference

$result = abs($diff) . (abs($diff)==1 ? ' day ':' days ') . ($diff<=0 ? 'ago':'ahead'); // making the result.
echo $result; // output: 1 day ago
$input=1369057622.4679;
$diff=floor($input-time())/86400);//计算差异

$result=abs($diff)。(abs($diff)=1“天”:“天”)。($diffmicrotime()给出当前的微时间。如果你减去这两个,你会得到以微秒为单位的差值。你可以按增量除以天数:$days=floor($diff/1000/60/60/24);我添加了floor,这样你就不会得到3.1231234213451234912873519875天。如果你想要更多的灵活性(不只是显示天数,而是显示更重要的周数或小时数),查找并生成
DateInterval
对象。创建对象的开销比简单的除法要大,但是您可以使用工具以任何方式格式化输出。差异应基于microtime(),而不是time()。用户使用的输入以毫秒为单位。time函数返回秒。因此,您是从毫秒中减去秒。@kainaw这正是我第一次查看时的想法,但输入不是以毫秒为单位的,而是以秒为单位的,
之后的内容被视为毫秒,但因为OP希望以毫秒为单位输出由于毫秒部分与实际无关,我们可以将该值“下限”几天。尝试执行
echo time();
,结果是
~1369138801
,将其与
1369057622.4679
进行比较。