如何修改时间前脚本以 DD-MM-YYYY 的形式显示时间
Posted
技术标签:
【中文标题】如何修改时间前脚本以 DD-MM-YYYY 的形式显示时间【英文标题】:how to modify time ago script to show time in form of DD-MM-YYYY 【发布时间】:2014-06-14 10:17:19 【问题描述】:我有一个前一段时间的脚本,它以eg: 1 Min
的形式将 unix 标记更改为大约时间
我的脚本(php):
<?php
$periods = array("sec", "min", "hr", "day", "week", "month", "yr");
$lengths = array("60","60","24","7","4.35","12","10");
$span = time() - $row['post_time'];
$tense = "ago";
for($j = 0; $span >= $lengths[$j] && $j < count($lengths)-1; $j++)
$span /= $lengths[$j];
$span = round($span);
if($span != 1)
$periods[$j].= "s";
$time_elapse = $span.' '.$periods[$j] ; //will output in the form of 1min or 1hr
?>
我的问题:我如何修改此脚本以显示 unix 时间戳,这导致 dd-mm-yyyy 格式的大约时间超过 2 年
不明白的解释一下
测试代码/脚本
<?php
$initial_time="946681200";//the unix timestamp is for Jan 1 2001
$periods = array("sec", "min", "hr", "day", "week", "month", "yr");
$lengths = array("60","60","24","7","4.35","12","10");
$span = time() - $initial_time;
$tense = "ago";
for($j = 0; $span >= $lengths[$j] && $j < count($lengths)-1; $j++)
$span /= $lengths[$j];
$span = round($span);
if($span != 1)
$periods[$j].= "s";
$time_elapse = $span.' '.$periods[$j] ;
?>
上面的代码会将 unix 时间戳 "946681200" 转换为大约时间 ie.14yrs
但我想在 DD-MM 中显示所有大于两年的 unix 时间戳-YYYY 格式
【问题讨论】:
【参考方案1】:这段代码所做的只是创建两个 DateTime 对象:一个代表两年前,一个代表您的初始化时间。然后比较它们(DateTime 对象是可比较的)。如果$initial_date
大于两年前,它只会以您请求的格式将该日期分配给$time_elapse
。否则,您的代码将照常运行。
<?php
$initial_time="946681200";//the unix timestamp is for Dec 31, 1999
$two_years_ago = new DateTime('-2 years');
$initial_date = new DateTime('@' . $initial_time);
if ($initial_date < $two_years_ago)
$time_elapse = $initial_date->format('d-m-Y');
else
$periods = array("sec", "min", "hr", "day", "week", "month", "yr");
$lengths = array("60","60","24","7","4.35","12","10");
$span = time() - $initial_time;
$tense = "ago";
for($j = 0; $span >= $lengths[$j] && $j < count($lengths)-1; $j++)
$span /= $lengths[$j];
$span = round($span);
if($span != 1)
$periods[$j].= "s";
$time_elapse = $span.' '.$periods[$j] ;
?>
Demo
【讨论】:
以上是关于如何修改时间前脚本以 DD-MM-YYYY 的形式显示时间的主要内容,如果未能解决你的问题,请参考以下文章
在 UITextField swift 3.0 中使用数字键盘以 dd-MM-yyyy 格式输入日期
将日期格式从 dd-mm-yyyy 转换为 YYMMDD [重复]
如何将jquery-mobile-datebox mm-dd-yyyy显示格式的翻转框弹出显示顺序更改为dd-mm-yyyy