1.写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
function getChIntv (timeStr)
{
var timeEnd = new Date(timeStr).getTime();
var timeStart = new Date().getTime();
var offsetTime = timeEnd - timeStart;
var days = parseInt(offsetTime / (1000 * 60 * 60 * 24));
var hours = parseInt(offsetTime / (1000 * 60 * 60 ) % 24);
var minutes = parseInt(offsetTime / (1000 * 60 ) % 60);
var seconds = parseInt(offsetTime / (1000) % 60);
return "距除夕还有 "+ days + " 天 " + hours + " 小时 " + minutes + " 分 " + seconds + " 秒 ";
}
var str = getChIntv("2017-03-25 00:00:00");
console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
2.把hh-mm-dd格式数字日期改成中文日期
function getChsDate (str)
{
var dateArr = str.split('-');
var yearStr = dateArr[0];
var monthStr = dateArr[1];
var dayStr = dateArr[2];
var dict = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九',
'二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九',
'三十','三十一'];
var chYearStr = dict[parseInt(yearStr[0])] + dict[parseInt(yearStr[1])] + dict[parseInt(yearStr[2])] + dict[parseInt(yearStr[3])];
var chMonthStr = dict[parseInt(monthStr)];
var chDayStr = dict[parseInt(dayStr)];
var result = chYearStr + '年' + chMonthStr + '月' + chDayStr + '日';
return result;
}
var str = getChsDate('2015-01-08');
console.log(str); // 二零一五年一月八日
3.写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串:
- 刚刚( t 距当前时间不到1分钟时间间隔)
- 3分钟前 (t距当前时间大于等于1分钟,小于1小时)
- 8小时前 (t 距离当前时间大于等于1小时,小于24小时)
- 3天前 (t 距离当前时间大于等于24小时,小于30天)
- 2个月前 (t 距离当前时间大于等于30天小于12个月)
- 8年前 (t 距离当前时间大于等于12个月)
function friendlyDate(time)
{
var timeStart = parseInt(time);
var timeEnd = new Date().getTime();
var offsetTime = timeEnd - timeStart;
var years = offsetTime / (1000 * 60 * 60 * 24 * 31 *12);
var months = offsetTime / (1000 * 60 * 60 * 24 * 31) % 12;
var days = offsetTime / (1000 * 60 * 60 * 24) % 31;
var hours = offsetTime / (1000 * 60 * 60 ) % 24;
var minutes = offsetTime / (1000 * 60 ) % 60;
if (years >= 1)
{
return parseInt(years) + '年前';
}
else if (months >= 1)
{
return parseInt(months) + '月前';
}
else if (days >= 1)
{
return parseInt(days) + '天前';
}
else if (hours >= 1)
{
return parseInt(hours) + '小时前';
}
else if (minutes >= 1)
{
return parseInt(months) + '分钟前';
}
else
{
return '刚刚'
}
}
var str = friendlyDate( '1484286699422' ) // 1分钟前
var str2 = friendlyDate('1483941245793') //4天前
console.log(str);
console.log(str2);