首頁  >  文章  >  web前端  >  JavaScript中Date物件的詳解(附範例)

JavaScript中Date物件的詳解(附範例)

不言
不言轉載
2018-10-18 16:34:312312瀏覽

這篇文章帶給大家的內容是關於JavaScript中Date物件的詳解(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一、建立Date實例物件

#1.new Date();依據系統設定的目前時間來建立一個Date物件

    let today = new Date();
    console.log(today); //Thu Jun 14 2018 14:51:00 GMT+0800 (CST)

2.new Date(value);

#參數:value  代表自1970年1月1日00:00:00 (世界標準時間) 起經過的毫秒數

    let day = new Date(1528959690000);
    console.log(day); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

3.new Date(dateString);

參數:dateString  表示日期的字串值。字串應該能被Date.parse() 方法辨識

    let day1 = new Date("2018-06-14T07:01:30.000Z");
    console.log(day1); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

4.new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]] ]);

參數:

  • year  代表年份的整數值,為了避免2000年問題最好指定4位數的年份; 使用1998,而不要用98

  • month  代表月份的整數值從0(1月)到11(12月)

  • day  代表一個月中的第幾天的整數值,從1開始

  • hour  代表一天中的小時數的整數值(24小時制)

  • minute  分鐘數

  • second  秒數

  • #millisecond  表示時間的毫秒部分的整數值

#
    let day2 = new Date(2018,5,14);
    console.log(day2); //Thu Jun 14 2018 00:00:00 GMT+0800 (CST)

    let day3 = new Date(2018,5,14,15,1,30);
    console.log(day3); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

二、Date靜態屬性

1.Date.prototype 表示Date建構子的原型

Date實例繼承自Date.prototype,你可以使用建構子的原型物件為所有Date實例新增屬性或方法

三、Date靜態方法

1.Date.UTC() 方法傳回從1970-1-1 00:00:00 UTC到指定日期的毫秒數

語法:Date.UTC(year, month[,date[,hrs[,min[,sec[,ms]]]]])
參數:

  • year  1900 年後的某一年

  • month  0 到11 之間的整數,表示月份

  • date  1 到31 之間的整數,表示某月當中的第幾天

  • hrs  0 到23 之間的整數,表示小時

  • min  0 到59 之間的整數,表示分鐘

  • sec  0 到59 之間的整數,表示秒

  • ms  0 到999 之間的整數,表示毫秒

    let utcDate = new Date(Date.UTC(2018, 5, 14, 7, 1, 30));
    console.log(Date.UTC(2018, 5, 14, 7, 1, 30)); //1528959690000
    console.log(utcDate); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

2.Date.now() 方法傳回自1970年1月1日00:00:00 UTC到目前時間的毫秒數

#
    let nowDate = new Date(Date.now());
    console.log(nowDate); //Fri Jun 15 2018 16:31:05 GMT+0800 (CST)
    console.log(Date.now()); //1529051465358

3.Date.parse()方法傳回一個表示從1970-1-1 00:00:00 UTC到給定日期字串所表示時間的毫秒數的數值

#語法:Date.parse(dateString)

參數:dateString   一個符合RFC2822 或ISO 8601 日期格式的字串

##回傳值:傳回一個從1970-1-1 00:00:00 UTC到給定日期字串所表示時間的毫秒數的數值。如果參數不能解析為一個有效的日期,則傳回NaN

    let time = Date.parse('2018-06-14T07:01:30.000Z');
    console.log(time);// 1528959690000

四、Date實例方法

1.年

setFullYear() 方法根據本機時間為一個日期物件設定年份

語法:dateObj.setFullYear(yearValue[, monthValue[, dayValue]])

參數:

  • yearValue  指定年份的整數值,例如1995。

  • monthValue  一個0到11之間的整數值,表示一月到十二月。

  • dayValue  一個1到31之間的整數值,表示月份的第幾天。如果你指定了dayValue 參數,就必須同時指定monthValue

#getFullYear() 方法根據本地時間傳回指定日期的年份

語法: dateObj.getFullYear()

傳回值:根據當地時間,傳回一個對應於給定日期的年份數字

    let date1 = new Date(1528959690000);
    console.log(date1); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date1.setFullYear(2017)); //1497423690000
    console.log(date1.getFullYear()); //2017

setUTCFullYear() 方法根據世界標準時間為一個具體日期設定年份

語法:dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])

參數:

  • yearValue  指定年份整數值,例如,1995

  • monthValue  可選,指定一個0-11之間的整數值,代表一月到十二月

  • dayValue  可選,指定一個1-31之間的整數值,代表月份中的第幾天,如果你指定了dayValue參數,那麼你必須指定monthValue參數

getUTCFullYear( ) 以世界時為標準,傳回一個指定的日期物件的年份

語法:dateObj.getUTCFullYear()

傳回值:傳回絕對數值,符合Year-2000 標準,例如1995

let day1 = new Date(1528959690000);
console.log(day1.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
console.log(day1.setUTCFullYear(2017)); //1497423690000
console.log(day1.getUTCFullYear()); //2017

2.月

setMonth() 方法根據本地時間為一個設定年份的日期物件設定月份

語法:dateObj.setMonth(monthValue[, dayValue])

參數:

  • monthValue  介于 0 到 11 之间的整数(表示一月到十二月)

  • dayValue  从 1 到 31 之间的整数,表示月份中的第几天

getMonth() 方法根据本地时间,返回一个指定的日期对象的月份

语法:dateObj.getMonth()
返回值:返回一个0 到 11的整数值: 0 代表一月份,1 代表二月份, 2 代表三月份,依次类推

    let date2 = new Date(1528959690000);
    console.log(date2); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date2.setMonth(4)); //1526281290000
    console.log(date2.getMonth()); //4

setUTCMonth()方法根据通用的时间来设置一个准确的月份

语法:dateObj.setUTCMonth(monthValue[, dayValue])
参数:

  • monthValue  一个0-11的整数,代表1月到12月

  • dayValue  可选参数,一个1-31的整数,代表一个月的天数

getUTCMonth方法以世界时为标准,返回一个指定的日期对象的月份,它是从 0 开始计数的(0 代表一年的第一个月)

语法:dateObj.getUTCMonth()
返回值:返回一个 0 到 11 的整数,分别对应以下月份:0 代表一月,1 代表二月,2 代表三月,依次类推

    let day2 = new Date(1528959690000);
    console.log(day2.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day2.setUTCMonth(4)); //1526281290000
    console.log(day2.getUTCMonth()); //4

3.日

setDate() 方法根据本地时间来指定一个日期对象的天数

语法:dateObj.setDate(dayValue)
参数:dayValue  一个整数,表示该月的第几天

getDate() 根据本地时间,返回一个指定的日期对象为一个月中的第几天

语法:dateObj.getDate()
返回值:返回一个1 到 31的整数值

    let date3 = new Date(1528959690000);
    console.log(date3); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date3.setDate(21)); //1529564490000
    console.log(date3.getDate()); //21

setUTCDate() 方法就是根据全球时间设置特定date对象的日期

语法:dateObj.setUTCDate(dayValue)
参数:dayValue  一个1-31的整形数字,用来指定日期

getUTCDate() 方法以世界时为标准,返回一个指定的日期对象为一个月中的第几天

语法:dateObj.getUTCDate()
返回值:返回一个 1 到 31 的整数值

    let day3 = new Date(1528959690000);
    console.log(day3.toUTCString()); ////Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day3.setUTCDate(25)); //1529910090000
    console.log(day3.getUTCDate()); //25

4.星期几

getDay() 方法根据本地时间,返回一个具体日期中一周的第几天,0 表示星期天

语法:dateObj.getDay()
返回值:返回一个整数值: 0 代表星期日, 1 代表星期一,2 代表星期二, 依次类推

    let date = new Date(1528959690000);
    console.log(date); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date.getDay()); //4

getUTCDay() 方法以世界时为标准,返回一个指定的日期对象为一星期中的第几天,其中 0 代表星期天

语法:dateObj.getUTCDay()
返回值:返回一个对应一星期中第几天的整数:0 代表星期天,1 代表星期一,2 代表星期二,依次类推

5.时

setHours() 方法根据本地时间为一个日期对象设置小时数

语法:dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
参数:

  • hoursValue  一个 0 到 23 的整数,表示小时

  • minutesValue  一个 0 到 59 的整数,表示分钟

  • secondsValue  一个 0 到 59 的整数,表示秒数,如果指定了 secondsValue 参数,则必须同时指定 minutesValue 参数

  • msValue  一个 0 到 999 的数字,表示微秒数,如果指定了 msValue 参数,则必须同时指定 minutesValue 和 secondsValue 参数

getHours() 方法根据本地时间,返回一个指定的日期对象的小时

语法:dateObj.getHours()
返回值:返回一个0 到 23之间的整数值

    let date4 = new Date(1528959690000);
    console.log(date4); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date4.setHours(11)); //1528945290000
    console.log(date4.getHours()); //11

setUTCHours() 方法就是根据全球时间设置特定date对象的小时数

语法:dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
参数:

  • hoursValue  表示小时的整数,取值0到23之间

  • minutesValue  可选参数,表示分钟的整数,取值0到59之间

  • secondsValue  可选参数,表示秒数的整数,取值0到59之间;如果指定了该参数,就要同时指定minutesValue这个参数

  • msValue  可选参数,表示毫秒的整数,取值0到999之间;如果指定了该参数,就要指定minutesValue和secondsValue这两个参数

getUTCHours() 方法以世界时为标准,返回一个指定的日期对象的小时数

语法:dateObj.getUTCHours()
返回值:返回一个 0 到 23 的整数

    let day4 = new Date(1528959690000);
    console.log(day4.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day4.setUTCHours(15)); //1528988490000
    console.log(day4.getUTCHours()); //15

6.分

setMinutes() 方法根据本地时间为一个日期对象设置分钟数

语法:dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
参数:

  • minutesValue  一个 0 到 59 的整数,表示分钟数。

  • secondsValue  一个 0 到 59 的整数,表示秒数,如果指定了 secondsValue 参数,则必须同时指定 minutesValue 参数。

  • msValue  一个 0 到 999 的数字,表示微秒数,如果指定了 msValue 参数,则必须同时指定 minutesValue和secondsValue 参数

getMinutes() 方法根据本地时间,返回一个指定的日期对象的分钟数

语法:dateObj.getMinutes()
返回值:返回一个0 到 59的整数值

    let date5 = new Date(1528959690000);
    console.log(date5); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date5.setMinutes(30)); //1528961430000
    console.log(date5.getMinutes()); //30

setUTCMinutes()方法会根据根据全球时间来设置指定日期的分钟数

语法:dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
参数:

  • minutesValue  必填,表示要设置的分钟数,是一个介于0和59之间的整数

  • secondsValue  可选参数,表示要设置的秒数,同样也是一个介于0和59之间的整数,如果你传入了这个参数,那么你就必须要传入minutesValue

  • msValue  可选参数,表示要设置的毫秒数,这是一个介于0和999之间的数字,如果你传入了这个参数,那么你就必须要传入minutesValue和secondsValue

getUTCMinutes() 方法以世界时为标准,返回一个指定的日期对象的分钟数

语法:dateObj.getUTCMinutes()
返回值:返回一个 0 到 59 的整数

    let day5 = new Date(1528959690000);
    console.log(day5.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day5.setUTCMinutes(45)); //1528962330000
    console.log(day5.getUTCMinutes()); //45

7.秒

setSeconds() 方法根据本地时间设置一个日期对象的秒数

语法:dateObj.setSeconds(secondsValue[, msValue])
参数:

  • secondsValue  一个 0 到 59 的整数

  • msValue  一个 0 到 999 的数字,表示微秒数

getSeconds() 方法根据本地时间,返回一个指定的日期对象的秒数

语法:dateObj.getSeconds()
返回值:返回一个 0 到 59 的整数值

    let date6 = new Date(1528959690000);
    console.log(date6); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date6.setSeconds(40)); //1528959700000
    console.log(date6.getSeconds()); //40

setUTCSeconds() 方法为一个依据国际通用时间的特定日期设置秒数

语法:dateObj.setUTCSeconds(secondsValue[, msValue])
参数:

  • secondsValue  一个在0到59之间的整数,表示秒数

  • msValue  可选参数,一个0到999之间的数字,代表毫秒数

getUTCSeconds() 方法以世界时为标准,返回一个指定的日期对象的秒数

语法:dateObj.getUTCSeconds()
返回值:返回一个 0 到 59 的整数

    let day6 = new Date(1528959690000);
    console.log(day6.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day6.setUTCSeconds(50)); //1528959710000
    console.log(day6.getUTCSeconds()); //50

8.毫秒

setMilliseconds() 方法会根据本地时间设置一个日期对象的豪秒数

语法:dateObj.setMilliseconds(millisecondsValue)
参数:millisecondsValue  一个 0 到 999 的数字,表示豪秒数

getMilliseconds() 方法,根据本地时间,返回一个指定的日期对象的毫秒数

语法:dateObj.getMilliseconds()
返回值:方法返回一个0 到 999的整数

let date7 = new Date(1528959690000);
console.log(date7); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
console.log(date7.setMilliseconds(100)); //1528959690100
console.log(date7.getMilliseconds()); //100

setUTCMilliseconds() 方法会根据世界时来设置指定时间的毫秒数

语法:dateObj.setUTCMilliseconds(millisecondsValue)
参数:millisecondsValue  0 - 999 之间的数值,代表毫秒数

getUTCMilliseconds() 方法以世界时为标准,返回一个指定的日期对象的毫秒数

语法:dateObj.getUTCMilliseconds()
返回值:返回一个 0 到 999 的整数

    let day7 = new Date(1528959690000);
    console.log(day7.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day7.setUTCMilliseconds(900)); //1528959690900
    console.log(day7.getUTCMilliseconds()); //900

9.time

setTime() 方法以一个表示从1970-1-1 00:00:00 UTC计时的毫秒数为来为 Date 对象设置时间

语法:dateObj.setTime(timeValue)
参数:timeValue  一个整数,表示从1970-1-1 00:00:00 UTC开始计时的毫秒数

getTime() 方法返回一个时间的格林威治时间数值,这个方法的功能和 valueOf() 方法一样

语法:dateObj.getTime()
返回值:返回一个从1970年1月1日0时0分0秒(UTC,即协调世界时)距离该日期对象所代表时间的毫秒数

    let date8 = new Date(1528959690000);
    console.log(date8); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date8.setTime(1528959690100)); //1528959690100
    console.log(date8.getTime()); //1528959690100

10.获取时间字符串

  • toDateString() 方法以美式英语和人类易读的形式返回一个日期对象日期部分的字符串

  • toTimeString() 方法以人类易读形式返回一个日期对象时间部分的字符串

  • toUTCString() 方法把一个日期转换为一个字符串,使用UTC时区

  • toISOString() 方法返回一个 ISO(ISO 8601 Extended Format)格式的字符串:
     YYYY-MM-DDTHH:mm:ss.sssZ

  • toJSON() 方法返回 Date 对象的字符串形式

  • toLocaleString() 方法返回该日期对象的字符串,该字符串格式因不同语言而不同

  • toLocaleDateString() 方法返回该日期对象日期部分的字符串,该字符串格式因不同语言而不同

  • toLocaleTimeString() 方法返回该日期对象时间部分的字符串,该字符串格式因不同语言而不同

  • valueOf() 方法返回一个 Date 对象的原始值

let day9 = new Date(1528959690000);
console.log(day9); //Thu Jun 14 2018 15:01:30 GMT+0800 (中国标准时间)
console.log(day9.toString()); //Thu Jun 14 2018 15:01:30 GMT+0800 (中国标准时间)
console.log(day9.toDateString()); //Thu Jun 14 2018
console.log(day9.toTimeString()); //15:01:30 GMT+0800 (中国标准时间)
console.log(day9.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
console.log(day9.toISOString()); //2018-06-14T07:01:30.000Z
console.log(day9.toJSON()); //2018-06-14T07:01:30.000Z
console.log(day9.toLocaleString()); //2018/6/14 下午3:01:30
console.log(day9.toLocaleDateString()); //2018/6/14
console.log(day9.toLocaleTimeString()); //下午3:01:30
console.log(day9.valueOf()); //1528959690000

以上是JavaScript中Date物件的詳解(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除