本文介绍了php strtotime反向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
php 中是否有一些函数 timetostr
可以从给定的时间戳输出 today/tomorrow/next sunday/etc.
?所以 timetostr(strtotime(x))=x
Is there some function timetostr
in php that will output today/tomorrow/next sunday/etc.
from a given timestamp? So that timetostr(strtotime(x))=x
推荐答案
这可能对来这里的人有用.
This might be useful for people coming here.
/**
* Format a timestamp to display its age (5 days ago, in 3 days, etc.).
*
* @param int $timestamp
* @param int $now
* @return string
*/
function timetostr($timestamp, $now = null) {
$age = ($now ?: time()) - $timestamp;
$future = ($age < 0);
$age = abs($age);
$age = (int)($age / 60); // minutes ago
if ($age == 0) return $future ? "momentarily" : "just now";
$scales = [
["minute", "minutes", 60],
["hour", "hours", 24],
["day", "days", 7],
["week", "weeks", 4.348214286], // average with leap year every 4 years
["month", "months", 12],
["year", "years", 10],
["decade", "decades", 10],
["century", "centuries", 1000],
["millenium", "millenia", PHP_INT_MAX]
];
foreach ($scales as list($singular, $plural, $factor)) {
if ($age == 0)
return $future
? "in less than 1 $singular"
: "less than 1 $singular ago";
if ($age == 1)
return $future
? "in 1 $singular"
: "1 $singular ago";
if ($age < $factor)
return $future
? "in $age $plural"
: "$age $plural ago";
$age = (int)($age / $factor);
}
}
这篇关于php strtotime反向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!