2. date物件
(2) 例項方法
(3) 靜態方法
3. date物件、日期字串、時間戳之間的轉換
不要這樣寫new date('2019-3-5')
,會出bug。這個string格式為yyyy-m-d。
在ios手機和safari瀏覽器上,這個格式會報錯,改為yyyy-mm-dd,即new date('2019-03-05')
是可以的,用/也是可以的,即new date('2019/3/5')
。
下圖為safari的結果:
但是,有一些資料提到用』-'連線的日期字串在ie上轉換會失敗,試過之後發現並不會,不確定是不是因為ie版本問題。
(1) 日期字串用/的格式
不管是yyyy/mm/dd還是yyyy/m/d,都可。
var str =
'2019-3-5'
;str = str.
split
('-').
join
('/');
//或: str.replace(new regexp(/-/g),'/')
var date =
newdate
(str)
;
(2) 使用moment.js日期處理類庫
官網:注意:建構函式返回的都是date物件。
[1] new date()
返回本地日期和時間的date物件
new
date()
//=> thu mar 07 2019 11:31:45 gmt+0800 (china standard time)
[2] new date(毫秒時間戳)
引數:毫秒時間戳(表示從1970/01/01 00:00:00為起點的毫秒數)。注意,要加上本地所在時區,因為北京是東八區,所以起始時間是1970/01/01 08:00:00
返回:date物件
new
date(0
)//=> thu jan 01 1970 08:00:00 gmt+0800 (china standard time)
[3] new date(日期字串)new
date
('2019/03/07 07:05:01'
)//=> thu mar 07 2019 07:05:01 gmt+0800 (china standard time)
date物件的例項方法主要分為2種形式:本地時間和utc時間。例如:
var date =
newdate()
;//=> thu mar 07 2019 14:08:04 gmt+0800 (china standard time)
date.
gethours()
;//=> 14
date.
getutchours()
;//=> 6
下面列舉幾個容易混淆的:
var date =
newdate()
;//=> thu mar 07 2019 14:25:11 gmt+0800 (china standard time)
date.
getdate()
;//=> 7
date.
getday()
;//=> 4
date.
gettime()
;//=> 1551939911331
date.
valueof()
;//=> 1551939911331
[1] date.now()
返回當前日期和時間的date物件與』1970/01/01 00:00:00』之間的毫秒值(北京時間的時區為東8區,起點時間實際為:『1970/01/01 08:00:00』)
這個和new date()
有什麼區別?
date.now()
返回的是毫秒值;new date()
返回的是date物件
date.
now();
//等價於
var date =
newdate()
;date.
gettime()
;
[2] date.parse(日期字串)
把字串轉換為date物件,然後返回此date物件與』1970/01/01 00:00:00』之間的毫秒值(北京時間的時區為東8區,起點時間實際為:『1970/01/01 08:00:00』)
date.
parse
('2019/03/07');
//=> 1551888000000
//等價於
var date =
newdate
('2019/03/07');
date.
gettime()
;//=> 1551888000000
上面提到的例項方法,是需要date物件的例項才可以呼叫。那不免在date物件、日期字串和毫秒上需要進行轉換。
date物件 => 日期字串
var date =
newdate()
;date.
todatestring()
;//=> "thu mar 07 2019"
date.
toutcstring()
;//=> "thu, 07 mar 2019 07:55:36 gmt"
date.
tolocalestring()
;//=> "3/7/2019, 3:55:36 pm"
date.
tolocaledatestring()
;//=> "3/7/2019"
日期字串 => date物件
var date =
newdate
('2019/03/07');
//=> thu mar 07 2019 00:00:00 gmt+0800 (china standard time)
date物件 => 時間戳
var date =
newdate()
;date.
gettime()
;//=> 1551946333499
date.
valueof()
;//=> 1551946333499
時間戳 => date物件
var date =
newdate
(1551946333499);
//=> thu mar 07 2019 16:12:13 gmt+0800 (china standard time)
日期字串 => 時間戳
date.
parse
('2019/03/07'
)//=> 1551888000000
時間戳 => 日期字串
var date =
newdate
(1551888000000);
date.
tolocaledatestring()
;//=> "3/7/2019"
其他日期處理函式請參考: js Date 物件用於處理日期和時間。
date 物件用於處理日期和時間。建立 date 物件的語法 var mydate new date date 物件會自動把當前日期和時間儲存為其初始值。引數形式有以下 種 new date month dd,yyyy hh mm ss new date month dd,yyyy new date...
Js date日期格式處理
獲取當前時間的周一到週日 function getdates return dates console.log getdates 2020 8 24 2020 8 25 2020 8 26 2020 8 27 2020 8 28 2020 8 29 2020 8 30 當前日期減去前1小時 7天 1...
JSdate日期的本地物件導向方法總結
首先獲取系統時間 var da new date getdate 從 date 物件返回乙個月中的某一天 1 31 getday 從 date 物件返回一周中的某一天 0 6 getfullyear 從 date 物件以四位數字返回年份。getmonth 1 從 date 物件返回月份 0 11 g...