天文台javascript中关于日期与时的基础知识

By admin in 天文台 on 2018年9月13日

面前的语

  于介绍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到31
T           在字符串中直接以“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
星期二    Tuesday        Tue
星期三    Wednesday      Wed
星期四    Thursday       Thu
星期五    Friday        Fri
星期六    Saturday       Sar

 

时分秒

    1天 = 24小时 = 24*60(1440)分 = 24*60*60(86400)秒 = 86,400,000毫秒
    1分= 60秒
    1小时 = 3600秒
    1天 = 86400秒

  Date对象回来的是一个毫秒数,经常得用其换算成时分秒的形式

date = 100000s
day(天) = Math.floor(100000/86400) = 1
hour(小时) = Math.floor((100000%86400)/3600) = 3
minute(分) = Math.floor((100000%3600)/60) = 46
second(秒) = Math.floor(100000%60)=40
console.log(100000 === 1*86400+ 3*3600+ 46*60+40);//true

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2018 亚洲必赢手机官网 版权所有