我有一個MySql日期時間值,如「2012-04-17 20:48:29」。我想將其轉換爲「10天前」之類的簡單文本。我想要在PHP或JavaScript中做到這一點!我試圖創建我自己的算法來做到這一點。但是,有沒有可用的解決方案?將mysql日期時間轉換爲簡單文本
0
A
回答
1
,你可以使用這個模式
$date = "2012-04-17 20:48:29";
$seconds = time() - strtotime($date);
$days = floor($seconds/86400);
$seconds -= $days * 86400;
$hours = floor($seconds/3600);
$seconds -= $hours * 3600;
$minutes = floor($seconds/60);
$seconds -= $minutes * 60;
echo "$days days, $hours hours, $minutes minutes, $seconds seconds ago";
你當然應該呼應的結果之前添加一些條件。僅顯示1分鐘前,或3小時前,或在10天前...
0
0
我用這個函數:
function duration($integer)
{
$seconds=$integer;
$minutes = 0;
$hours = 0;
$days = 0;
$weeks = 0;
$return = "";
if ($seconds/60 >=1)
{
$minutes=floor($seconds/60);
if ($minutes/60 >= 1)
{ # Hours
$hours=floor($minutes/60);
if ($hours/24 >= 1)
{ #days
$days=floor($hours/24);
if ($days/7 >=1)
{ #weeks
$weeks=floor($days/7);
if ($weeks>=2) $return="$weeks Weeks";
else $return="$weeks Week";
} #end of weeks
$days=$days-(floor($days/7))*7;
if ($weeks>=1 && $days >=1) $return="$return, ";
if ($days >=2) $return="$return $days days";
if ($days ==1) $return="$return $days day";
} #end of days
$hours=$hours-(floor($hours/24))*24;
if ($days>=1 && $hours >=1) $return="$return, ";
if ($hours >=2) $return="$return $hours hours";
if ($hours ==1) $return="$return $hours hour";
} #end of Hours
$minutes=$minutes-(floor($minutes/60))*60;
if ($hours>=1 && $minutes >=1) $return="$return, ";
if ($minutes >=2) $return="$return $minutes minutes";
if ($minutes ==1) $return="$return $minutes minute";
} #end of minutes
$seconds=$integer-(floor($integer/60))*60;
if ($minutes>=1 && $seconds >=1) $return="$return, ";
if ($seconds >=2) $return="$return $seconds seconds";
if ($seconds ==1) $return="$return $seconds second";
$return="$return.";
return $return;
}
echo duration(time() - strtotime($date));
1
有了這個功能,你會得到這樣的輸出:
- 1分鐘
- 5分鐘
- 15小時
- 4天
- 2個月
- 1.5年
function time_ago_in_words($time) {
$from_time = strtotime($time);
$to_time = strtotime(gmd());
$distance_in_minutes = round((($to_time - $from_time))/60);
if ($distance_in_minutes < 0)
return (string)$distance_in_minutes.'E';
if (between($distance_in_minutes, 0, 1))
return '1 minute';
elseif (between($distance_in_minutes, 2, 44))
return $distance_in_minutes.' minutes';
elseif (between($distance_in_minutes, 45, 89))
return '1 hour';
elseif (between($distance_in_minutes, 90, 1439))
return round($distance_in_minutes/60).' hours';
elseif (between($distance_in_minutes, 1440, 2879))
return '1 day';
elseif (between($distance_in_minutes, 2880, 43199))
return round($distance_in_minutes/1440).' days';
elseif (between($distance_in_minutes, 43200, 86399))
return '1 month';
elseif (between($distance_in_minutes, 86400, 525959))
return round($distance_in_minutes/43200).' months';
elseif ($distance_in_minutes > 525959)
return number_format(round(($distance_in_minutes/525960), 1), 1).' years';
}
所以,你可以這樣做:
// Last time you logged in: 15 days ago.
Last time you logged in: <?php echo time_ago_in_words($user['last_logged_in']) ?> ago.
// We haven't seen you for 15 days!
We haven't seen you for <?php echo time_ago_in_words($user['last_logged_in']) ?>!
相關問題
- 1. 將文本轉換爲日期時間?
- 2. PHP - 將日期轉換爲簡單的日期時間?
- 3. 將時間和日期轉換爲mysql日期時間
- 4. Python:將MySQL日期時間轉換爲日期時間格式
- 5. 將Mysql文本轉換爲日期
- 6. Excel 2010將文本(日期+時間)轉換爲日期
- 7. 將文本日期轉換爲日期時間SQL服務器
- 8. Ruby將Mysql時間戳轉換爲Mysql日期時間
- 9. 將日期時間轉換爲時間
- 10. 將MySql日期時間戳轉換爲JavaScript的日期格式
- 11. 將日期時間轉換爲日期的查詢mysql
- 12. 在excel中將文本日期/時間轉換爲實際日期時間
- 13. 如何將簡單日期轉換爲sqllite日期時間格式?
- 14. MySQL轉換爲日期時間
- 15. MySQL錯誤轉換爲日期時間
- 16. 將日期時間轉換爲MySQL時間戳
- 17. PHP將MySQL日期時間轉換爲Unix時間戳
- 18. 在MYSQL中將時間戳轉換爲日期時間
- 19. MySQL:你如何將日期時間轉換爲unix時間?
- 20. 將時間/日期從XML文件轉換爲MYSQL格式
- 21. 將小時轉換爲日期時間
- 22. 將時間戳('YYYY-MM-DD HH:MM:SS')轉換爲簡單的日期時間格式
- 23. 將日期對象中的Mysql時間戳日期轉換爲本地化
- 24. 將MySQL日期轉換爲Java日期
- 25. 將C#日期時間轉換爲XML日期時間類型
- 26. 將日期和時間轉換爲日期+時間戳
- 27. 將日期時間轉換爲另一日期時間
- 28. 將日期,日期時間轉換爲時間戳
- 29. 將日期時間int轉換爲日期時間
- 30. 將當地日期時間轉換爲UTC日期時間