1.写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
function getChIntv(timeStr){
var arr = timeStr.split('-') //把时间字符串切割成数组
console.log(arr); //["2018", "02", "15"]
arr[1] = parseInt(arr[1]); //把月份02转化成2
timeStr = arr.join('-'); //把数组连接成时间字符串
console.log(timeStr); //2018-2-15
var timeEnd = new Date(timeStr).getTime();
var timeStart = Date.now();
var time = timeEnd - timeStart;
var day = parseInt(time / (1000*86400));
var hour = parseInt(time % (1000*86400) / (1000*3600));
var minute = parseInt(time % (1000*86400) % (1000*3600) / (1000*60));
var second = parseInt(time % (1000*86400) % (1000*3600) % (1000*60) / 1000 );
return "距除夕还有" + day + "天" + hour + "小时"+minute + "分"+ second + "秒";
}
var str = getChIntv("2018-02-15"); // 2018年的除夕公历
console.log(str); // 距除夕还有307天10小时21分18秒
这里2018-02-15 转化的时间是格林威治的标准时区的时间,2018-2-15转化后是本地的北京时间,做过测试,会差8个小时时区时间,所以我才费劲吧这个0去掉,Date对象真坑!!!
2.把hh-mm-dd格式数字日期改成中文日期
function getChsDate(timeStr){
dict = ['零','一','二','三','四','五','六','七','八','九','十',
'十一','十二','十三','十四','十五','十六',
'十七','十八','十九','二十','二十一','二十二',
'二十三','二十四','二十五','二十六','二十七',
'二十八','二十九','三十','三十一']
var timeArr = timeStr.split('-');
var year = "", month = "", day = "";
for(var i in timeArr[0]){
year += dict[timeArr[0][i]];
}
month += dict[parseInt(timeArr[1])];
day += dict[parseInt(timeArr[2])]
return year + "年" + month + "月" + day + "日";
}
var str = getChsDate('2015-01-08');
console.log(str); //二零一五年一月八日
3.写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串:
function friendlyDate(time){
var timeStart = parseInt(time);
var timeEnd = Date.now();
var time = timeEnd - timeStart;
if(time < 1000*60){
return "刚刚";
}else if(time < 1000*60*60){
return "3分钟前";
}else if(time < 1000*60*60*24){
return "8小时前";
}else if(time < 1000*60*60*24*30){
return "3天前";
}else if(time < 1000*60*60*24*30*12){
return "2个月前";
}else{
return "8年前";
}
}
var str = friendlyDate( '1492065298587' ) // 刚刚
var str2 = friendlyDate('1491005298587') // 3天前