是否有一些函數timetostr
在PHP中,將輸出today/tomorrow/next sunday/etc.
從給定的時間戳?因此,timetostr(strtotime(x))=x
php strtotime反向
回答
這可能對來這裏的人有用。
/**
* 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);
}
}
我收到一個錯誤:意外的'列表'(T_LIST)。我究竟做錯了什麼? – hozza 2014-09-11 13:54:32
與PHP版本有什麼共同點?我通過聲明列表'list($ singular,$ plural,$ factor)= $ scale;'在foreach中並用'$ list'替換foreach中的列表來工作。 – hozza 2014-09-11 14:08:26
這是正確的。 PHP 5.5增加了「使用list()解包嵌套數組」(http://php.net/manual/en/control-structures.foreach.php) – 2014-09-11 15:27:16
不能有strtotime
反轉函數,因爲這不是雙射。當您使用strtotime
時,您從中獲得UNIX時間戳的源字符串可以採用許多不同的方式進行格式化。所以如果你決定改變功能,你怎麼知道使用什麼字符串格式?這可能是2010年8月5日或2000年9月10日等。這正是爲什麼沒有反向函數,但正如Andypandy所說的,你必須使用date()
,它允許你實際定義你想結束的字符串格式與...一起。我知道這個問題很舊,但我認爲它應該得到這個答案,所以其他用戶明白爲什麼PHP中沒有這樣的功能。
雖然技術上「正確」這並不回答OP的問題,而只是促進了所有知道程序員的負面刻板印象,他知道比有人問這個問題,另一種方法是這樣說 - > http://stackoverflow.com/a/3040437/830899 – unsynchronized 2013-12-25 18:59:11
date(「Ymd」,time())可以完成這項工作。 – Qinjie 2014-12-30 05:00:51
- 1. PHP的strtotime ERROR
- 2. php - mktime或strtotime?
- 3. PHP strtotime timezone
- 4. PHP函數strtotime
- 5. PHP strtotime錯誤?
- 6. PHP strtotime和DST
- 7. PHP strtotime問題
- 8. php date&strtotime
- 9. strtotime php mysql
- 10. PHP反向Preg_match
- 11. Wordpress php/strtotime問題
- 12. PHP的strtotime行爲
- 13. PHP的strtotime發出
- 14. PHP的strtotime功能
- 15. php codeigniter - strtotime錯誤
- 16. PHP strtotime返回false
- 17. PHP strtotime函數quandry
- 18. 反向PHP函數
- 19. 反向PHP陣列
- 20. 的strtotime下午時間反映0
- 21. Perl的等效PHP的strtotime()?
- 22. php strtotime和工作多年?
- 23. php strtotime秒和分鐘
- 24. PHP的strtotime功能(2)
- 25. php strtotime()關閉1分鐘?
- 26. 替代的strtotime在PHP 5.1.6
- 27. php strtotime和日期問題
- 28. 刪除週末在php strtotime()
- 29. PHP Strtotime附加功能
- 30. Javascript的等效PHP的strtotime()?
date()。見http://php.net/manual/en/function.date.php – 2011-12-25 13:29:07
@Andypandy:我知道'date()'。我的意思是問,有沒有一種直接的功能可以做'strtotime'的反轉? – prongs 2011-12-25 13:35:46
如果沒有日期,我不知道...你能提供更多的上下文嗎?像這樣($ timestring = date('l',$ timestamp)不起作用? – 2011-12-25 13:39:21