js Date對象常用操作

2021-03-02 藍橋杯

關於日期的操作有兩種:操作日期時間,操作時間戳。下面是相關API

時間戳,通常是一個字符序列,唯一地標識某一刻的時間,是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總毫秒數。

一、創建Date()對象

var date1 = new Date();
// 參數是時間戳
var date2 = new Date(1486915200000);
// 參數是日期字符串
var date3 = new Date('2017/2/13');
// 參數是年、月、日...,其中年月日是必須的
var date4 = new Date('2017', '2', '13');
// Mon Feb 13 2017 18:09:31 GMT+0800 (中國標準時間)
console.log(date1)
// Mon Feb 13 2017 00:00:00 GMT+0800 (中國標準時間)
console.log(date2)
// Mon Feb 13 2017 00:00:00 GMT+0800 (中國標準時間)
console.log(date3)
// Mon Feb 13 2017 00:00:00 GMT+0800 (中國標準時間)
console.log(date4)

二、獲取時間

1、獲取當前時間

1.Date() 或者new Date()
// Mon Feb 13 2017 15:46:34 GMT+0800 (中國標準時間)
console.log(Date())
// Mon Feb 13 2017 15:46:34 GMT+0800 (中國標準時間)
console.log(new Date())
2.get系列方法,常用的是獲取年/月/日/時/分/秒,獲取當前時間要求日期對象為當前日期
getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)。
getMonth() 從 Date 對象返回月份 (0 ~ 11)。
getFullYear() 從 Date 對象以四位數字返回年份。注意不要使用getYear()。
getHours() 返回 Date 對象的小時 (0 ~ 23)。
getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)。
getSeconds() 返回 Date 對象的秒數 (0 ~ 59)。
getMilliseconds() 返回 Date 對象的毫秒(0 ~ 999)。
var date = new Date()
var year = date.getFullYear()
// 2017年
console.log(year + '年')

2、獲取固定的時間

(1)new Date("2012/12/12");

(2)set系列方法,常用的是設置年/月/日/時/分/秒

setDate() 設置 Date 對象中月的某一天 (1 ~ 31)。
setMonth() 設置 Date 對象中月份 (0 ~ 11)。
setFullYear() 設置 Date 對象中的年份(四位數字)。注意不要使用setYear()方法。
setHours() 設置 Date 對象中的小時 (0 ~ 23)。
setMinutes() 設置 Date 對象中的分鐘 (0 ~ 59)。
setSeconds() 設置 Date 對象中的秒鐘 (0 ~ 59)。
setMilliseconds() 設置 Date 對象中的毫秒 (0 ~ 999)。
var date = new Date('2016/2/13')// Sat Feb 13 2016 00:00:00 GMT+0800 (中國標準時間)
console.log(date)
var date1 = new Date()
date1.setFullYear('2016')
// Sat Feb 13 2016 17:55:22 GMT+0800 (中國標準時間)
console.log(date1)

3.通過固定的時間戳獲取固定的時間

setTime() 以毫秒設置 Date 對象。

var date1 = new Date()
date1.setTime(1486915200000)
// Mon Feb 13 2017 00:00:00 GMT+0800 (中國標準時間)
console.log(date1)

4、獲取本地時間格式

toLocaleString() 根據本地時間格式,把 Date 對象轉換為字符串。
toLocaleTimeString() 根據本地時間格式,把 Date 對象的時間部分轉換為字符串。
toLocaleDateString() 根據本地時間格式,把 Date 對象的日期部分轉換為字符串。
var date2 = new Date()
// 2017/2/13 下午5:30:17
console.log(date2.toLocaleString())
// 下午5:30:17
console.log(date2.toLocaleTimeString())
// 2017/2/13
console.log(date2.toLocaleDateString())

三、獲取時間戳

1、獲取當前時間戳

Date.now()、+ new Date()、Date.parse(new Date())、new Date().getTime()
var date1 = Date.now()
var date2 = + new Date()
var date3 = Date.parse(new Date())
var date4 = new Date().getTime()
// 1486977645739
console.log(date1)
// 1486977645739
console.log(date2)
// 1486977645000
console.log(date3)
// 1486977645739
console.log(date4)

從上面輸出結果可以看到Date.parse()與其他不同,有點奇葩

2、獲取固定時間戳

Date.parse(new Date())、new Date().getTime()
var date2 = + new Date('2017/2/13')
var date3 = Date.parse(new Date('2017/2/13'))
var date4 = new Date('2017/2/13').getTime()
// 1486915200000
console.log(date2)
// 1486915200000
console.log(date3)
// 1486915200000
console.log(date4)

四、開發應用場景

1、自定義格式日期,如2015年3月19日 12:00:00這種格式

var date = new Date();
// 2017年02月13日 18:29:39
console.log(formatDateTime(date))
function formatDateTime(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second = date.getSeconds();
second = second < 10 ? ('0' + second) : second;
return y + '年' + m + '月' + d+'日 '+h+':'+minute + ':' + second;};

2、倒計時效果

// 寫文章時時間為為2017/2/13
var endDate = new Date('2017/3/13')
// 實現距離距離2017/2/13 00:00:00的倒計時效果
var t = setInterval(function(){
var date = ShowCountDown(endDate,new Date());
console.log(date)
}, 1000);
function ShowCountDown(endDate,nowDate) {
var date = ''
var leftTime=endDate.getTime()-nowDate.getTime();
if (leftTime >= 0) {
var leftsecond = parseInt(leftTime/1000);
var day1=Math.floor(leftsecond/(60*60*24));
var hour=Math.floor((leftsecond-day1*24*60*60)/3600);
var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60);
var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60);
day1 = day1 < 10 ? ('0' + day1) : day1;
hour = hour < 10 ? ('0' + hour) : hour;
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
date = "還剩:"+day1+"天"+hour+"小時"+minute+"分"+second+"秒";
}else{
clearInterval(t)
date = "還剩:00天00小時00分00秒";
}
return date
}

相關焦點

  • 如何繼承 Date 對象?由一道題徹底弄懂 JS 繼承
    (date.getTest());一眼看上去不知所措?譬如可以在MDN上看到,以常規函數調用Date(即不加 new 操作符)將會返回一個字符串,而不是一個日期對象,如果這樣模擬的話會無效。覺得看起來比較繁瑣?可以看下圖梳理:
  • js內置對象
    接下來我們介紹js內置對象,分別是:時間對象、Math對象,通過一些例子來詳細介紹他們的一些方法。什麼是對象1.對象的定義對象(object)是JavaScript的核心概念,也是最重要的數據類型。所謂對象,帶有屬性和方法的數據類型,一般由若干個「鍵值對」(key-value)構成。
  • js獲取時間常見用法整理
    業務需求中常用的時間選擇器需給定默認時間段,或者校驗是否在某時間段內,這時候總是現去查很浪費時間,因此整理了一下常用的默認時間,方便後續需要直接時候來查(copy),我比較常用的插件是moment.js,所以本文給了兩種獲取方式:一個原生js方式獲取時間端段,一個直接用moment.js插件中方法獲取時間段❝Moment.js
  • 48個 JS 開發常用工具函數
    :格式化時間function dateFormater(formater, t){ let date = t ?new Date(t) : new Date(), Y = date.getFullYear() + '', M = date.getMonth() + 1, D = date.getDate(), H = date.getHours(), m = date.getMinutes(), s = date.getSeconds
  • 你可能不知道的 Date 類
    構造函數通過 new Date() 可以進行實例化,得到一個 Date 對象實例,值得注意的是如果直接執行 Date() ,將得到一個時間字符串。Date對象的範圍是-100,000,000天至100,000,000天(等效的毫秒值)。JavaScript的Date對象為跨平臺提供了統一的行為。時間屬性可以在不同的系統中表示相同的時刻,而如果使用了本地時間對象,則反映當地的時間。JavaScript 的Date對象提供了數個UTC時間的方法,也相應提供了當地時間的方法。
  • 60+ 個前端常用插件庫合集
    textillate.js官網:textillate.jsGithub:jschr/textillatetextillate.jsTimeline.js官網:Timeline.jsjQuery時間軸插件,使用簡單是它的優點。
  • 用js簡單的操作創建cookie緩存與緩存過期處理實例
    怎樣用js控制操作cookie呢?首先先用js設置cookiedocument.cookie="qtoolc=yes" 書寫js獲取cookie代碼function hqcookie(Name) {   var cha = Name + "=";   var returnvalue = "";   if (document.cookie.length
  • JS 開發常用工具函數
    = null && (type == 'object' || type == 'function');}4、isObjectLike:檢查 value 是否是 類對象。:格式化時間function dateFormater(formater, t){ let date = t ?
  • Javascript的對象拷貝
    通過上面的例子可以看到,對象 foo 和 bar 都能隨著對方的變化而變化。所以在拷貝 Javascript 中的對象時,要根據實際情況做一些考慮。淺拷貝如果要操作的對象擁有的屬性都是值類型,那麼可以使用擴展語法或 Object.assign(...)
  • js中的 new Date() 你可能不知道的背後冷知識
    當然了,我們也可以通過系統對象new Date()來輕鬆實現對時間的處理。不過對於出場率如此之高的 new Date() 你真的了解它麼?什麼是時區?時間標準如何定義?JavaScript中的時區有何不同? 穩住,別慌!今天就讓我們來扒開Date()的外衣,看看它背後的冷知識。😜😜😜什麼是時區?
  • H5常用js庫
    小五隨意總結了幾個H5中常用的js庫/框架,有些是小五常用慣用的,有些是總結案例時經常遇到的。
  • 動圖展示 60+ 個前端常用插件庫合集
    jquery-loading官網:jquery-loading起源於為了在讀取或運行中,鎖住特定對象,並同時保持讓瀏覽者可以操作頁面的其他部分Masonry.js官網:MasonryMasonry常用於瀑布流布局的插件。
  • 動圖展示 60+ 個常用的前端插件庫
    ,並同時保持讓瀏覽者可以操作頁面的其他部分。Masonry.js官網:MasonryMasonry常用於瀑布流布局的插件。List.js對表格、清單、各式各樣的對象,增加搜索、排序、過濾和靈活性,無形地建立在HTML內,極簡易也易於使用。
  • VBA操作單元格對象有哪些常用語句?
    ▼Sub CopyRng2() Range("a1:d5").Copy Range("h1")End SubRange對象的Copy方法完整語法格式如下:參數Destination指定了粘貼單元格的目標區域,可以省略,如果省略Excel會將單元格對象複製到剪貼板中。
  • 【工具】動圖展示 60+ 個前端常用插件庫合集
    jquery-loading官網:jquery-loading起源於為了在讀取或運行中,鎖住特定對象,並同時保持讓瀏覽者可以操作頁面的其他部分Masonry.js官網:MasonryMasonry常用於瀑布流布局的插件。
  • JavaScript在Web自動化中常用到的場景
    通過WebDriver中的execute_script()的方法來實現JS語法的操作。那麼JS元素在Web端自動化中具體的操作場景是什麼呢?我們繼續往下看。對於一些難定位的元素,可以通過JS的方法進行定位,JS提供了幾種常用的定位元素方法。
  • 初見成效,使用Js操作DOM對象
    二、JavaScript操作DOM對象1、什麼是DOMDOM:Document Object Model 文檔對象模型要實現頁面的動態交互效果,BOM操作遠遠不夠,需要操作如何操作 html,就是 DOM。簡單的說,DOM提供了用程序動態控制 html 接口。DOM即文檔對象模型描繪了一個層次化的節點樹,運行開發人員添加、移除和修改頁面的某一部分。DOM處於javascript 的核心地位上。
  • 原生JS實現日曆
    ,後面自己集成到vue或者react也十分方便Step 1:前置知識在開發日曆組件前,我們需要了解一個前置知識,就是JavaScript的內置對象Date,我們需要了解它內部的方法屬性才能進行下一步操作。
  • Redis發布對象映射庫Redis OM
    目前四個工具庫分別對應了四種程式語言,支持 .NET、Node.js、Python 和 Java (Spring):Redis OM for .NET:支持使用 LINQ 查詢 Redis 域對象Redis OM for Node.js:使用 TypeScript 編寫,為 TypeScript 和 JavaScript 提供一級支持Redis OM for
  • 非常常用的前端插件 Clipboard.js
    本期介紹一個非常常用的前端插件 Clipboard.js,Clipboard.js 實現了純 JavaScript (無 Flash)的瀏覽器內容複製到系統剪貼板的功能。1.clipboard.js介紹clipboard.js 現代化的拷貝文字,不依賴 flash, 不依賴其他框架,gzip 壓縮後只有 3kb 大小.「拷貝文字不應當是一件困難的事. 不需要過多繁雜的配置或者下載很多腳本文件.