Welcome 微信登录

首页 / 脚本样式 / JavaScript / 浅谈javascript中关于日期和时间的基础知识

前面的话
在介绍Date对象之前,首先要先了解关于日期和时间的一些知识。比如,闰年、UTC等等。深入了解这些,有助于更好地理解javascript中的Date对象。本文将介绍javascript关于日期和时间的基础知识
标准时间一般而言的标准时间是指GMT和UTC,以前是GMT,现在是UTC
GMT
格林尼治标准时间(GMT)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线
理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟
地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。现在的标准时间——世界协调时间(UTC)提供
UTC
世界协调时间(UTC)又称世界统一时间,世界标准时间,国际协调时间,全称Coordinated Universal Time,是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统
这套时间系统被应用于许多互联网和万维网的标准中,中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8
在军事中,协调世界时区会使用“Z”来表示。又由于Z在无线电联络中使用“Zulu”作代称,协调世界时也会被称为"Zulu time"
日期时间字符串格式
ECMAScript定义了一个基于简化的ISO8601扩展格式的日期时间的字符串互换格式
日期时间完整格式为:  YYYY-MM-DDTHH:mm:ss.sssZ
[注意]前置0不能省略,否则在完整格式的情况下会报错

YYYY公历中年的十进制数字,如果这个参数值在0-99之间,则向它加上1900-在字符串中直接以“-”(破折号)出现两次MM 一年中的月份,从01(一月)到12(十二月)DD 月份中的日期,从01到31T在字符串中直接以“T”出现,用来表明时间元素的开始HH 用两个十进制数字表示的,自午夜0点以来的小时数:在字符串中直接以“:”(冒号)出现两次mm 是用两个十进制数字表示的,自小时开始以来的分钟数ss 是用两个十进制数字表示的,自分开始以来的秒数.在字符串中直接以“.”(点)出现sss 是用三个十进制数字表示的,自秒开始以来的毫秒数Z是时区偏移量,由(“Z”(指UTC)或“+”或“-”)和后面跟着的时间表达式hh:mm组成
只表示日期的格式:  YYYY YYYY-MM YYYY-MM-DD
[注意]所有数字必须是10进制的。如果缺少MM或DD字段,用“01”作为它们的值。如果缺少mm或ss字段,用“00”作为它们的值,对于缺少的sss用“000”作为它的值。对于缺少的时区偏移量用“Z”

闰年
年分为闰年和平年,平年有365天,闰年有366天,闰年的2月比平年多一天
闰年的定义是(可被4整除)且((不可被100整除)或(可被400整除))的年份
口诀是:四年一闰,百年不闰,四百年再闰
function IsLeapYear(year){if(typeof year == "number"){if((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0){return "leap year"}else{return "common year"}}return "please input number"}
console.log(IsLeapYear(4));//"leap year"console.log(IsLeapYear(400));//"leap year"console.log(IsLeapYear(2000));//"leap year"console.log(IsLeapYear(1900));//"common year"
月日
一年有12个月,其中4、6、9、11月每月有30天;如果是闰年,2月有29天,否则 ,2月有28天。1、3、5、7、8、10、12月每月有31天
在javascript中,月的计算从0开始,所以1-12月,分别用0-11来表示;而日的计算则从1开始,1就代表第1天,以此类推
if(month == 2){//如果是闰年if((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0){days = 29;//如果是平年}else{days = 28;}//如果是第4、6、9、11月}else if(month == 4 || month == 6 ||month == 9 ||month == 11){days = 30;}else{days = 31;}
在javascript中,月份的简写经常在日期字符串中使用
一月Jan January二月Feb February三月Mar March四月Apr April五月May May六月Jun June七月Jul July八月Aug August九月Sep September十月Oct October十一月 Nov November十二月 Dec December
星期
星期是从星期日开始,到星期六结束,分别用0-6来表示
在javascript中,各星期的简写经常在日期字符串中使用
星期日sunday Sun星期一monday Mon星期二TuesdayTue星期三Wednesday Wed星期四ThursdayThu星期五FriddayFri星期六SaturdaySar
时分秒
1天 = 24小时 = 24*60(1440)分 = 24*60*60(86400)秒 = 86,400,000毫秒1分= 60秒1小时 = 3600秒1天 = 86400秒
Date对象返回的是一个毫秒数,经常需要将其换算成时分秒的形式
date = 100000sday(天) = Math.floor(100000/86400) = 1hour(小时) = Math.floor((100000%86400)/3600) = 3minute(分) = Math.floor((100000%3600)/60) = 46second(秒) = Math.floor(100000%60)=40console.log(100000 === 1*86400+ 3*3600+ 46*60+40);//true
以上这篇浅谈javascript中关于日期和时间的基础知识就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。