最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
JavaScript计算日期时间的方法
时间:2016-05-09 编辑:简简单单 来源:一聚教程网
由于博客全部改版为PJAX(pushState + ajax)。因此,类似于作品等列表都是使用接口读的,后台返回的时间是一个MySQL时间戳,并不能直接使用,需要格式化成指定的字符串。以前这些都是后台搞完返回,现在需要在前端去实现,总结了下博客改版过程中使用到的关于日期时间的方法,主要有parseTime格式化和timeAgo多久之前两个方法。前者就是我们常见到的类似于2015-12-30 12:00、12月20日这种,后者则是类似于2天前,3周前这种,都是比较常用的。
parseTime()
/**
* 格式化日期
* @param timestamp 数据库时间戳
* @param format 如 y-m-d h:i:s
* @param full 是否补零 5 => 05
* @returns {string}
*/
function parseTime(timestamp,format,full){
full = full != undefined ? full : true;
timestamp = timestamp * 1000;
if(!format) format = "y-m-d h:i:s";
format = format.toLowerCase();
function zeroFull(str){
return full ? (str >= 10 ? str : ('0' + str)) : str;
}
var time = new Date(timestamp),
o = {
y : time.getFullYear(),
m : zeroFull(time.getMonth() + 1),
d : zeroFull(time.getDate()),
h : zeroFull(time.getHours()),
i : zeroFull(time.getMinutes()),
s : zeroFull(time.getSeconds())
};
return format.replace(/([a-z])(\1)*/ig,function(m){
return o[m];
});
}
console.log(parseTime(1451460186,"y年m月d日 h:i"));
//2015年12月30日 15:23
console.log(parseTime(1451460186,"y-m-d h:i"));
//2015-12-30 15:23
console.log(parseTime(1451460186,"m-d h:i"));
//12-30 15:23
console.log(parseTime(1451460186,"h:i"));
//15:23 1
timeAgo()
/**
* 多久之前
* @param stamp 数据库时间戳
* @param format 对于不在范围的日期格式化 如 y-m-d h:i:s
* @param max 最大级别 默认 月
* @returns {string}
*/
function timeAgo(stamp,format,max) {
max = max ? parseInt(max) : 2592000;
var now = (new Date() * 1) / 1000,
time = now - stamp,
text = {
31536000 : "年",
2592000 : "个月",
604800 : "周",
86400 : "天",
3600 : "小时",
60 : "分钟",
1 : "秒"
};
var back = "";
if(time <= max){
for(var k in text){
var c = Math.floor(time / parseInt(k));
if( 0 != c ){
if(text[k] == "天" && c <= 2){
back = (((c == 1) ? "昨天" : "前天") + parseTime(stamp,"h:i"));
}else{
back = (c + text[k] + "前");
}
}
}
}else{
back = parseTime(stamp,format);
}
return back;
}
console.log(timeAgo(1451460186,"m-d h:i"));
//3小时前
-
下一个: js加载js文件并行加载与顺序执行
相关文章
- JavaScript计算两个日期之间的时间差 06-28
- Kalendae轻量级时间日期选择JavaScript插件 06-14
- javaScript检测日期时间格式是否正确代码 08-26
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31