在 JS 中经过的时间秒数
Seconds into time elapsed in JS
我正在尝试使用 jQuery 和挣扎将总秒数转换为经过的时间。
我有一个例子:{"expires": "254254"}
来自外部来源的响应,我想将其转换成 2days Xhours Xminutes left
,我试过使用这样的东西:
function timeDifference(elapsed) {
var msPerMinute = 60 * 1000;
var msPerHour = msPerMinute * 60;
var msPerDay = msPerHour * 24;
var msPerMonth = msPerDay * 30;
var msPerYear = msPerDay * 365;
if (elapsed < msPerMinute) {
return Math.round(elapsed/1000) + ' seconds ago';
} else if (elapsed < msPerHour) {
return Math.round(elapsed/msPerMinute) + ' minutes ago';
} else if (elapsed < msPerDay ) {
return Math.round(elapsed/msPerHour ) + ' hours ago';
} else if (elapsed < msPerMonth) {
return 'approximately ' + Math.round(elapsed/msPerDay) + ' days ago';
} else if (elapsed < msPerYear) {
return 'approximately ' + Math.round(elapsed/msPerMonth) + ' months ago';
} else {
return 'approximately ' + Math.round(elapsed/msPerYear ) + ' years ago';
}
}
--更新
function DDHHMMSS(seconds){
var t = seconds
var cd = 24 * 60 * 60 * 1000,
ch = 60 * 60 * 1000,
cs = 60 * 1000,
d = Math.floor(t / cd),
h = Math.floor( (t - d * cd) / ch),
m = Math.round( (t - d * cd - h * ch) / 60000),
s = Math.round( (t - d * cd - h * ch ) / 360000),
pad = function(n){ return n < 10 ? '0' + n : n; };
if( m === 60 ){
h++;
m = 0;
}
if( h === 24 ){
d++;
h = 0;
}
var days = d.toString() + "days";
var hour = pad(h).toString() + "Hours";
var minutes = pad(m).toString() + "Minutes";
var Seconds = pad(s).toString() + "Seconds";
return [days , hour , minutes ,Seconds].join(':');
}
--更新
使用datejs,写这样的东西:
(new Date).clearTime()
.addSeconds(15457)
.toString('H:mm:ss');
--更新
如今 date.js 已过时且无人维护,因此请使用 "Moment.js"、
如果您可以使用第三方插件,请尝试:timeago
有关如何将其用于未来日期的更多信息,请参阅问题:
Like timeago, but in the future
我正在尝试使用 jQuery 和挣扎将总秒数转换为经过的时间。
我有一个例子:{"expires": "254254"}
来自外部来源的响应,我想将其转换成 2days Xhours Xminutes left
,我试过使用这样的东西:
function timeDifference(elapsed) {
var msPerMinute = 60 * 1000;
var msPerHour = msPerMinute * 60;
var msPerDay = msPerHour * 24;
var msPerMonth = msPerDay * 30;
var msPerYear = msPerDay * 365;
if (elapsed < msPerMinute) {
return Math.round(elapsed/1000) + ' seconds ago';
} else if (elapsed < msPerHour) {
return Math.round(elapsed/msPerMinute) + ' minutes ago';
} else if (elapsed < msPerDay ) {
return Math.round(elapsed/msPerHour ) + ' hours ago';
} else if (elapsed < msPerMonth) {
return 'approximately ' + Math.round(elapsed/msPerDay) + ' days ago';
} else if (elapsed < msPerYear) {
return 'approximately ' + Math.round(elapsed/msPerMonth) + ' months ago';
} else {
return 'approximately ' + Math.round(elapsed/msPerYear ) + ' years ago';
}
}
--更新
function DDHHMMSS(seconds){
var t = seconds
var cd = 24 * 60 * 60 * 1000,
ch = 60 * 60 * 1000,
cs = 60 * 1000,
d = Math.floor(t / cd),
h = Math.floor( (t - d * cd) / ch),
m = Math.round( (t - d * cd - h * ch) / 60000),
s = Math.round( (t - d * cd - h * ch ) / 360000),
pad = function(n){ return n < 10 ? '0' + n : n; };
if( m === 60 ){
h++;
m = 0;
}
if( h === 24 ){
d++;
h = 0;
}
var days = d.toString() + "days";
var hour = pad(h).toString() + "Hours";
var minutes = pad(m).toString() + "Minutes";
var Seconds = pad(s).toString() + "Seconds";
return [days , hour , minutes ,Seconds].join(':');
}
--更新
使用datejs,写这样的东西:
(new Date).clearTime()
.addSeconds(15457)
.toString('H:mm:ss');
--更新
如今 date.js 已过时且无人维护,因此请使用 "Moment.js"、
如果您可以使用第三方插件,请尝试:timeago
有关如何将其用于未来日期的更多信息,请参阅问题:
Like timeago, but in the future