求一个JS对时间运算的函数,最好用时间戳
参数为当前时间和n,要求返回当前时间减去n小时后的时间;时间格式{2015-07-1700:00:00},多谢大神了...
参数为当前时间和n,要求返回当前时间减去n小时后的时间;时间格式{2015-07-17 00:00:00},多谢大神了
展开
1个回答
展开全部
/**
* 获取指定时间戳n小时之前的时间
* @current {Timestamp} 时间戳,精确到毫秒
* @n {Number} 要减去的小时
* @Return {String} 格式化后的时间
*/
var parser = function (current, n) {
if (arguments.length < 2)
throw new Error("缺少参数!");
if (current.constructor !== Number || n.constructor !== Number)
throw new Error("参数类型错误");
// 计算n小时之前的时间戳
n = current - n * 3600 * 1000;
// 如果计算出的时间小于0,则返回传入的时间
if (current < 0)
n = current;
// 获取年月日时间
n = new Date(n);
n = {
year: n.getFullYear(),
month: n.getMonth() + 1,
day: n.getDate(),
hour: n.getHours(),
minute: n.getMinutes(),
second: n.getSeconds()
};
// 格式化时间
var fill = function (num) {
return (num < 10 ? '0' + num : num);
};
n = '{' + n.year + '-' + fill(n.month) + '-' + fill(n.day) + ' ' + fill(n.hour) + ':' + fill(n.minute) + ':' + fill(n.second) + '}';
return n;
}
获取当前时间戳 var current = (new Date()).getTime()
* 获取指定时间戳n小时之前的时间
* @current {Timestamp} 时间戳,精确到毫秒
* @n {Number} 要减去的小时
* @Return {String} 格式化后的时间
*/
var parser = function (current, n) {
if (arguments.length < 2)
throw new Error("缺少参数!");
if (current.constructor !== Number || n.constructor !== Number)
throw new Error("参数类型错误");
// 计算n小时之前的时间戳
n = current - n * 3600 * 1000;
// 如果计算出的时间小于0,则返回传入的时间
if (current < 0)
n = current;
// 获取年月日时间
n = new Date(n);
n = {
year: n.getFullYear(),
month: n.getMonth() + 1,
day: n.getDate(),
hour: n.getHours(),
minute: n.getMinutes(),
second: n.getSeconds()
};
// 格式化时间
var fill = function (num) {
return (num < 10 ? '0' + num : num);
};
n = '{' + n.year + '-' + fill(n.month) + '-' + fill(n.day) + ' ' + fill(n.hour) + ':' + fill(n.minute) + ':' + fill(n.second) + '}';
return n;
}
获取当前时间戳 var current = (new Date()).getTime()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询