javascript
js 获得明天0点时间戳_需要知道的JS的日期知识,都在这了
時區
我們的世界有數百個時區。在JavaScript中,我們只關心兩個,?本地時間和協調世界時(UTC)。本地時間是指你的計算機所在的時區。
UTC實際上是格林威治標準時間(GMT)的同義詞
創建日期
可以使用?new Date()來創建日期,傳入的參數通常有4種常用的方式:使用日期字符串參數
使用一系列的參數
時間戳參數
不帶參數
使用日期字符串參數
new Date('1988-03-21')這種方式方便且直觀。如果現在寫的是21-03-1988,我們可以毫不費力想表達的是1988年3月21日。但是如果用JS 編寫21-03-1988,則會得到無效的日期。這是有原因的。在世界的不同地方以不同的方式解釋日期字符串。例如11-06-2019是2019年6月11日還是?2019年11月6日。你不能確定我指的是哪一個,除非你知道我正在使用的日期系統。在JS中,如果要使用日期字符串參數,則需要使用全球都能接受的格式,其中一種格式是ISO 8601擴展格式。// ISO 8601 Extended format`YYYY-MM-DDTHH:mm:ss:sssZ`YYYY:4位數年份
MM:兩位數月份(即 1月為01,12月為12)
DD:兩位數的日期(0到31)
-:日期分隔符
T:表示開始時間
HH:24位小時數(0到23)
mm:分鐘(0到59)
ss:秒(0到59)
sss:毫秒(0到999)
::時間分隔符
Z:如果存在Z,則日期將設置為UTC,如果Z不存在,則為本地時間。
使用一系列的參數創建
最多可以傳入七個參數來創建日期/時間。Year:4位數年份
Month:一年中的某月(0-11)
Day:每月的某天(1-31),如果省略,則默認為1。
Hour:一天中的小時(0-23),如果省略,則默認為0。
Minutes:分鐘(0-59),如果省略,則默認為0。
Seconds:秒(0-59),如果省略,則默認為0。
Milliseconds:毫秒(0-999),如果省略,則默認為0。
// 11th June 2019, 5:23:59am, Local Time
new Date(2019, 5, 11, 5, 23, 59)
使用時間戳來創建日期
在JS中,時間戳是自1970年1月1日以來經過的毫秒數(1970年1月1日也稱為Unix紀元時間)。根據我的經驗,很少使用時間戳來創建日期,一般使用時間戳來比較不同的日期或者格式化日期,后面在討論。不帶參數的形式創建日期
如果創建沒有任何參數的日期,則會將日期設置為當前時間(以本地時間為單位)。new Date()小結一波使用 new Date() 創建日期
有四種可能的語法:
- 使用字符串日期值
- 使用一系列參數
- 使用時間戳
- 不帶參數
最好不要使用字符串日期值的方法創建日期
最好使用一系列參數方式創建日期
記住月份是從0開始的
格式化日期
多數編程語言都提供了一種格式工具來創您想要的任何日期格式 例如,在PHP中,可以將date("d M Y")格式化成23 1月 2019這樣的日期。但是在JS 中格式化日期并不容易。原生?Date對象提供了七種格式化方法,這七種方法中的每一種都會給你一個特定的價值,而且它們毫無用處。const date = new Date(2019, 0, 23, 17, 23, 42)toString:格式化成 "Wed Jan 23 2019 17:23:42 GMT+0800 (中國標準時間)"
toDateString: 格式化成 "Wed Jan 23 2019"
toLocaleString:格式化成 "2019/1/23 下午5:23:42"
toLocaleDateString:格式化成 "2019/1/23"
toGMTString:格式化成 "Wed, 23 Jan 2019 09:23:42 GMT"
toUTCString:格式化成 "Wed, 23 Jan 2019 09:23:42 GMT"
toISOString :格式化成 "2019-01-23T09:23:42.000Z"
編寫自定義日期格式
假設想要?2019年1月23日 星期四這樣的日期格式。需要知道?Date對象日期方法。要獲取這樣的格式,用到?Date中的四個方法:getFullYear:獲取當地時間4位數的年份
getMonth:獲取當時時間的月份,注意從 0 開始
getDate:獲取當地時間月中的某一天(1-31)
getDay:獲取當地時間的星期幾(0-6),星期日(0)開始,到星期六(6)結束。
const d = new Date(2019, 0, 23)
const year = d.getFullYear() // 2019
const date = d.getDate() // 23
getHours:獲取當地時間獲取小時數(0-23)。
getMinutes:獲取本地時間獲取分鐘(0-59)。
getSeconds:獲取本地時間獲取秒數(0-59)。
getMilliseconds:獲取本地時間獲取毫秒(0-999)。
日期的比較
比較日期的前后,可以直接使用>,?<,?>=和?<=時行比較。const earlier = new Date(2019, 0, 26)const?later?=?new?Date(2019,?0,?27)console.log(earlier < later) // true比較兩個日期是否一樣,就比較麻煩,不能直接用?==或?===const a = new Date(2019, 0, 26)const?b?=?new?Date(2019,?0,?26)console.log(a == b) // falseconsole.log(a === b) // false可以getTime獲取它們的時間戳,用時間戳進行比較。const isSameTime = (a, b) => { return a.getTime() === b.getTime()}const a = new Date(2019, 0, 26)const b = new Date(2019, 0, 26)console.log(isSameTime(a, b)) // true如果只想檢查兩個日期是否在同一天,可以比較他們的getFullYear,getMonth和getDate值。const isSameDay = (a, b) => { return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate()=== b.getDate()}const a = new Date(2019, 0, 26, 10) // 26 Jan 2019, 10amconst b = new Date(2019, 0, 26, 12) // 26 Jan 2019, 12pmconsole.log(isSameDay(a, b)) // true從另一個日期獲取日期
有兩種可能的情況,希望從另一個日期獲得一個日期。設置另一個日期特定的日期/時間值
從另一個日期添加/減去增量
設置另一個日期特定的日期/時間值
可以使用以下方法設置另一個日期的日期/時間:setFullYear: 設置年份
setMonth:設置月份
setDate:設置每月的某一天
setHours:設置時
setNubytes:設置分
setSeconds:設置秒
setMilliseconds:設置毫秒
從另一個日期添加/減去增量
添加/減去增量有兩種通用方法。第一種方法在Stack Overflow上更受歡迎,它簡潔,但更難掌握。第二種方法更冗長,但更容易理解。假設希望獲得從今天起三天的日期。對于這個例子,假設今天是2019年3月28日。第一種方法
const today = new Date(2019, 2, 28)首先,我們創建一個新的Date對象,這樣就不會改變原始日期const finalDate = new Date(today)接下來,我們需要知道要更改的值。因為我們要改變日期,所以我們可以用getDate獲得日期const currentDate = today.getDate()因為獲取三天后的日期,所以需要在得到的日期加3setDate(currentDate + 3)完整代碼:const today = new Date(2019, 2, 28)const finalDate = new Date(today)finalDate.setDate(today.getDate()?+?3)console.log(finalDate) // 31 March 2019第二種方法
使用getFullYear,getMonth,getDate方法,更改對應的值, 然后,我們使用new Date創建最終日期。const today = new Date(2019, 2, 28)// Getting required valuesconst year = today.getFullYear()const month = today.getMonh()const day = today.getDate()// Creating a new Date (with the delta)const finalDate = new Date(year, month, day + 3)console.log(finalDate) // 31 March 2019自動日期校正
如果為Date提供一個超出其可接受范圍的值,JS 將自動重新計算日期。如下所示,假設我們把日期定在2019年3月33日,日歷上沒有33日,JS 會自動將3月33日調整為4月2日。這意味著在創建增量時無需擔心計算分鐘,小時,天,月等,JavaScript會自動處理。總結
以上是生活随笔為你收集整理的js 获得明天0点时间戳_需要知道的JS的日期知识,都在这了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python画正方形的代码_Python
- 下一篇: HTML、JS、字符串的简单加密与解密