Date()函数小结

1.常用时间函数

let D=new Date()
Date()	//返回当日的日期和时间。 
D.getDate()	//从 Date 对象返回一个月中的某一天 (1 ~ 31)。
D.getDay()	//从 Date 对象返回一周中的某一天 (0 ~ 6)。
D.getMonth()	//从 Date 对象返回月份 (0 ~ 11)。
D.getFullYear()	//从 Date 对象以四位数字返回年份。
D.getYear()	//请使用 getFullYear() 方法代替。
D.getHours()	//返回 Date 对象的小时 (0 ~ 23)。
D.getMinutes() //返回 Date 对象的分钟 (0 ~ 59)。
D.getSeconds()	//返回 Date 对象的秒数 (0 ~ 59)。
D.getMilliseconds()	//返回 Date 对象的毫秒(0 ~ 999)。
D.getTime()	//返回 1970 年 1 月 1 日至今的毫秒数。
D.getTimezoneOffset()	//返回本地时间与格林威治标准时间 (GMT) 的分钟差。
D.getUTCDate()	//根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
D.getUTCDay()	//根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
D.getUTCMonth()	//根据世界时从 Date 对象返回月份 (0 ~ 11)。
D.getUTCFullYear()	//根据世界时从 Date 对象返回四位数的年份。
D.getUTCHours()	//根据世界时返回 Date 对象的小时 (0 ~ 23)。
D.getUTCMinutes()	//根据世界时返回 Date 对象的分钟 (0 ~ 59)。
D.getUTCSeconds()	//根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
D.getUTCMilliseconds()	//根据世界时返回 Date 对象的毫秒(0 ~ 999)。
D.parse()	//返回1970年1月1日午夜到指定日期(字符串)的毫秒数。

D.setDate()	//设置 Date 对象中月的某一天 (1 ~ 31)。
D.setMonth()	//设置 Date 对象中月份 (0 ~ 11)。
D.setFullYear()	//设置 Date 对象中的年份(四位数字)。
D.setYear()	//请使用 setFullYear() 方法代替。
D.setHours()	//设置 Date 对象中的小时 (0 ~ 23)。
D.setMinutes()	//设置 Date 对象中的分钟 (0 ~ 59)。
D.setSeconds()	//设置 Date 对象中的秒钟 (0 ~ 59)。
D.setMilliseconds()	//设置 Date 对象中的毫秒 (0 ~ 999)。
D.setTime()	//以毫秒设置 Date 对象。
D.setUTCDate()	//根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
D.setUTCMonth()	//根据世界时设置 Date 对象中的月份 (0 ~ 11)。
D.setUTCFullYear()	//根据世界时设置 Date 对象中的年份(四位数字)。
D.setUTCHours()	//根据世界时设置 Date 对象中的小时 (0 ~ 23)。
D.setUTCMinutes()	//根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
D.setUTCSeconds()	//根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
D.setUTCMilliseconds()	//根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
D.toSource()	//返回该对象的源代码。
D.toString()	//把 Date 对象转换为字符串。
D.toTimeString()	//把 Date 对象的时间部分转换为字符串。
D.toDateString()	//把 Date 对象的日期部分转换为字符串。
D.toGMTString()	//请使用 toUTCString() 方法代替。
D.toUTCString()	//根据世界时,把 Date 对象转换为字符串。
D.toLocaleString()	//根据本地时间格式,把 Date 对象转换为字符串。
D.toLocaleTimeString()	//根据本地时间格式,把 Date 对象的时间部分转换为字符串。
D.toLocaleDateString()	//根据本地时间格式,把 Date 对象的日期部分转换为字符串。
D.UTC()	//根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
D.valueOf()	//返回 Date 对象的原始值。

参考:https://www.w3school.com.cn/js/jsref_obj_date.asp
数据格式化方法

toDateString() 特定格式实现星期 月 日和年
toTimeString() 特定实现时分秒 时区
toLocalDateSting() 特定的地区显示星期 月 日 年
toLocalTimeString() 特定于实现 时间 时分 秒
toUTCString()特定实现完整UTC日期

  • 常用时间问题
设置当前时间15var d = new Date()
d.setDate(15)
  • 时间可以对比较
new Date('2020-05-28')>new Date('2020-05-026')//true
  • 可以用时间戳进行比较
new Date('2020-05-28').getTime()>new Date('2020-05-026').getTime()//true
  • 根据出生日期算年龄
  var tim= new Date().getTime()-new Date(value) //获取时间戳
  var age=new Date(tim).getYear()-1970

查看原文:https://www.jianshu.com/p/f8d787b063a0

//方法一
 function age(value){
  var n =new Date() //当前时间
    var birthday = new Date(value) //出生时间
   return times = n.getYear() - birthday.getYear() - ((n.getMonth() < birthday.getMonth() || n.getMonth() == birthday.getMonth() && n.getDate() < birthday.getDate()) ? 1 : 0); //年龄
}
  

//方法二
/*根据出生日期算出年龄*/
function jsGetAge(strBirthday){       
    var returnAge;
    var strBirthdayArr=strBirthday.split("-");
    var birthYear = strBirthdayArr[0];
    var birthMonth = strBirthdayArr[1];
    var birthDay = strBirthdayArr[2];
    
    d = new Date();
    var nowYear = d.getFullYear();
    var nowMonth = d.getMonth() + 1;
    var nowDay = d.getDate();
    
    if(nowYear == birthYear){
        returnAge = 0;//同年 则为0岁
    }
    else{
        var ageDiff = nowYear - birthYear ; //年之差
        if(ageDiff > 0){
            if(nowMonth == birthMonth) {
                var dayDiff = nowDay - birthDay;//日之差
                if(dayDiff < 0)
                {
                    returnAge = ageDiff - 1;
                }
                else
                {
                    returnAge = ageDiff ;
                }
            }
            else
            {
                var monthDiff = nowMonth - birthMonth;//月之差
                if(monthDiff < 0)
                {
                    returnAge = ageDiff - 1;
                }
                else
                {
                    returnAge = ageDiff ;
                }
            }
        }
        else
        {
            returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天
        }
    }
    return returnAge;//返回周岁年龄
}

  • 时间戳格式化
// 日期+时间
  function datetime (value) {
    if (isValidDate(value)) {
      return
    }

    var date = new Date(value * 1);
    var year = date.getYear()
    var month = date.getMonth() + 1
    var day = date.getDate()
    var hour = date.getHours()
    var minute = date.getMinutes()
    var second = date.getSeconds()
    return [year, month, day].map(fn).join('-') + ' ' + [hour, minute, second].map(fn).join(':')

    function fn(n) {
      n = n.toString()
      return n[1] ? n : '0' + n
    }
  },
 
  • 距离时间
  // 是否合法时间戳
  function isValidDate (value) {
    var date = new Date(value * 1);
    return !isNaN(date.getTime());
  },
  function datedistance (value) {
    if (!isValidDate(value)) {
      return
    }
    value = new Date(value * 1).getTime();
    var time = new Date().getTime();
    var dis = (time - value) / 1000;
    // console.log('datedistance', dis)
    if (dis < 300) {
      return '刚刚'
    } else if (dis < 3600) {
      return Math.floor(dis / 60) + '分钟前'
    } else if (dis < 3600 * 24) {
      return Math.floor(dis / 3600) + '小时前'
    } else if (dis < 3600 * 24 * 30) {
      return Math.floor(dis / 3600 / 24) + '天前'
    } else if (dis < 3600 * 24 * 365) {
      return Math.floor(dis / 3600 / 24 / 30) + '月前'
    } else {
      return Math.floor(dis / 3600 / 24 / 365) + '年前'
    }
  },
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
    <script>
        // 1. 将时间戳转换成日期格式

        // // 简单的一句代码
        // var date = new Date(时间戳); //获取一个时间对象

        // /**
        //  1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了
        //  2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp
        //  */
        // date.getFullYear(); // 获取完整的年份(4位,1970)
        // date.getMonth(); // 获取月份(0-11,0代表1月,用的时候记得加上1)
        // date.getDate(); // 获取日(1-31)
        // date.getTime(); // 获取时间(从1970.1.1开始的毫秒数)
        // date.getHours(); // 获取小时数(0-23)
        // date.getMinutes(); // 获取分钟数(0-59)
        // date.getSeconds(); // 获取秒数(0-59)

        // let date = new Date();
        // console.log(date.toLocaleString())
        // http://www.365mini.com/page/javascript-date-tolocalestring.htm //时间转化成其他格式
        // console.log(date.getDate())//获取当前的时间 见上面
        // var myDate = new Date() //设置日期
        // myDate.setFullYear(2008, 7, 9)
        // console.log(myDate)

        // var myDate = new Date()
        // myDate.setDate(myDate.getDate() + 20)//日期函数自动转化时间
        // console.log(myDate)

        //日期比较大小
        // var myDate = new Date();
        // myDate.setFullYear(2008, 8, 9);

        // var today = new Date();

        // if (myDate > today) {
        //     console.log('myDate');
        // }
        // else {
        //     console.log("today");
        // }


        //2 时间格式转化
        // var date = new Date(1398250549490);
        // Y = date.getFullYear() + '-';
        // M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
        // D = date.getDate() + ' ';
        // h = date.getHours() + ':';
        // m = date.getMinutes() + ':';
        // s = date.getSeconds();
        // console.log(Y + M + D + h + m + s); 
        // 输出结果:2014-04-23 18:55:49

        //时间格式 转化成时间戳
        // var strtime = '2014-04-23 18:55:49:123';
        // var date = new Date(strtime);
        // //传入一个时间格式,如果不传入就是获取现在的时间了,这样做不兼容火狐。
        // // 可以这样做
        //格式转化
        // var date = new Date(strtime.replace(/-/g, '/'));

        // // 有三种方式获取,在后面会讲到三种方式的区别
        // time1 = date.getTime();
        // time2 = date.valueOf();
        // time3 = Date.parse(date);


        // 三种获取的区别:
        // 第一、第二种:会精确到毫秒
        // 第三种:只能精确到秒,毫秒将用0来代替
        // 比如上面代码输出的结果(一眼就能看出区别):
        // 1398250549123
        // 1398250549123
        // 1398250549000

        // //new Date("month dd,yyyy hh:mm:ss");
        // new Date("month dd,yyyy");
        // new Date("yyyy/MM/dd hh:mm:ss");
        // new Date("yyyy/MM/dd");
        // new Date(yyyy,mth,dd,hh,mm,ss);
        // new Date(yyyy,mth,dd);
        // new Date(ms);
        // new Date("September 16,2016 14:15:05");
        // new Date("September 16,2016");
        // new Date("2016/09/16 14:15:05");
        // new Date("2016/09/16");
        // new Date(2016,8,16,14,15,5); // 月份从0~11
        // new Date(2016,8,16);
        // new Date(1474006780);
    </script>

</body>

</html>

day.js参考:https://www.cnblogs.com/cjrfan/p/9154539.html

©️2020 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值