Date 任务

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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,462评论 0 4
  • 两个基础知识: JavaScript内的时间戳指的是当前时间到1970年1月1日00:00:00 UTC对应的毫秒...
    Sketch阅读 4,032评论 0 0
  • 参考基础教程的整理,方便记忆 一、Object对象 (O大写) 所有其他对象都继承自这个对象。Object本身也是...
    Viaphlyn阅读 6,893评论 0 0
  • Date对象: Date对象是js提供的日期和时间接口;Date对象有几个静态方法(即直接通过date对象调用的方...
    草鞋弟阅读 3,146评论 0 0
  • 当我早上问儿子,今天是在家还是去爸爸公司时,儿的回答是不知道。我就对他说,妈妈一早出门上班,在家你就自己下...
    大爱无疆杨青阅读 1,924评论 0 3