从 PHP 中的时间戳生成相对日期/时间
简介
确定相对日期/time 基于时间戳是编程中的常见任务。当考虑不同的时间间隔和转换方向(过去或未来)时,此功能变得更加复杂。
答案
下面的函数提供了一种全面的转换方法Unix 时间戳(使用 time() 函数获得)相对日期/时间格式,考虑过去和未来。它生成的输出例如:
该函数采用一系列条件语句来确定适当的时间表示基于当前时间和当前时间之间的差异时间戳:
<br>function time2str($ts)<br>{<pre class="brush:php;toolbar:false">// Handle syntax variations if(!ctype_digit($ts)) $ts = strtotime($ts); // Calculate the difference between now and the timestamp $diff = time() - $ts; // Check for exact matches to simplify handling if($diff == 0) return 'now'; // Handle past timestamps if($diff > 0) { // Calculate day difference $day_diff = floor($diff / 86400); // Format past time intervals switch(true) { case ($day_diff == 0): return constructPastInterval($diff); // Hours, minutes, seconds case ($day_diff == 1): return 'Yesterday'; case ($day_diff < 7): return $day_diff . ' days ago'; case ($day_diff < 31): return ceil($day_diff / 7) . ' weeks ago'; case ($day_diff < 60): return 'last month'; default: return date('F Y', $ts); } } // Handle future timestamps else { // Calculate absolute difference $diff = abs($diff); // Calculate day difference and format future time intervals based on logic similar to the past case. }
}
ConstructionPastInterval() 函数未在此响应中显示,但处理过去间隔的格式(小时、分钟、秒)。
此函数提供了一个强大且通用的解决方案,用于从时间戳生成相对日期/时间表示,无需多个脚本或复杂的自定义编码。
以上是如何在 PHP 中从 Unix 时间戳生成相对日期/时间字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!