JavaScript中日起对象通过 new Date(参数) 获取,不传参数时,默认获取的是当前时间:

var date = new Date()
console.log(date) // Mon Mar 30 2020 10:54:32 GMT+0800 (中国标准时间)

参数的形式有多种:

  • 毫秒数
    示例:

    var date = new Date(1000)
    console.log(date)  //Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)

    由于日起对象是从1970年1月1日00:00:00(国际标准时间)开始计算的,当参数为毫秒数的时候,得到的日期是从1970年1月1日00:00:00往后数多少毫秒后的时间,由于中国的地理位置在东八区,所以计时是从1970年1月1日08:00:00开始,当参数传1000毫秒时,得到是的时间就是1970年1月1日08:00:00之后的1s,即1970年1月1日08:00:01

  • 日期形式的字符串:dateString
    示例:

        var date = new Date('2019-8-1 8:7:10')
        console.log(date) //Thu Aug 01 2019 08:07:10 GMT+0800 (中国标准时间)

    日期字符串的形式多种多样,不同的国家形式也个不相同,这里只举例我比较熟悉的形式,得到的时间就是传进去的时间

  • new Date(年,月,[日,时,分,秒,毫秒])
    示例:

        var date = new Date(2019,3,4,12,31,39,1000);
        console.log(date) // Thu Apr 04 2019 12:31:40 GMT+0800 (中国标准时间)

    这里有三个需要注意的地方

    • 这种形式传参的时候,至少要传两个参数,否则它会认为你传的毫秒数,所以至少要传 年和月两个参数
    • 日期对象的 月份是从0开始计算的(0 - 代表1月,1 - 代表2月,... ,11 - 代表12月),所以当我传 3 的时候,他会认为是 4月,得到的结果自然而然的就成了4月
    • 这种形式各个参数会自动进位,如上代码,我传入的代表分钟的参数是39,但是由于后面传了1000ms, 它自动进位成1s,所以得到的结果输出就成了 12:31:40 秒

说说日期对象中的方法

get 方法
  • getFullYear()
    获取年份
  • getMonth()
    获取月份,注意月份从0 开始计算,获取到得月份加1才是实际月份,例:

        var month = new Date().getMonth();
        console.log(month) // 2,当前是3月,得到的是2
  • getDate()
    获取日期
  • getHours()
    获取小时
  • getMinutes()
    获取分钟
  • getSeconds()
    获取秒
  • getMilliseconds()
    获取毫秒
  • getDay()
    获取星期几,这里要注意的是 0 代表星期日
  • getTime()
    获取从1970年到当前时间经过的毫秒数,中国 就是从1970年1月1日08:00:00到当前时间经过的毫秒数。
set 方法
  • setFullYear(年):设置年份,返回值是1970年距离设置年份的毫秒数
  • setMonth(月):设置月份
  • setDate(日):设置日期
  • setHours(时):设置时
  • setMinutes(分):设置分
  • setSeconds(秒):设置秒
  • date.setMilliseconds(毫秒):设置毫秒

例:

var date = new Date()
console.log(date)   //Mon Mar 30 2020 12:27:35 GMT+0800 (中国标准时间)
date.setFullYear(2018);
console.log(date) // Fri Mar 30 2018 12:28:30 GMT+0800 (中国标准时间)

其余的就不一一举例了,用法都是一样的


qsugar
0 声望1 粉丝