javascript中有关日期和时间的基础知识

By admin in 天文台 on 2018年12月25日

面前的话

  在介绍Date对象往日,首先要先领会有关日期和岁月的局部文化。比如,闰年、UTC等等。深切明白这个,有助于更好地通晓javascript中的Date对象。本文将介绍javascript关于日期和时间的基础知识

 

正规时间

  一般而言的正式时间是指GMT和UTC,从前是GMT,现在是UTC

GMT

  格林(Green)尼治标准时间(GMT)是指位于London郊区的皇家格林尼治天文台的专业时间,因为本初子午线被定义在经过这里的经线

  理论上的话,格林(格林)尼治标准时间的正午是指当太阳横穿格林(格林)尼治子午线时(也就是在格林(格林(Green))尼治上空最高点时)的时光。由于地球在它的椭圆轨道里的移动速度不均匀,那多少个时刻或者和实在的日光时偏离16分钟

  地球每一天的自转是稍稍狼狈的,而且正在缓慢减速。所以,格林(Green)尼治时间已经不复被看成专业时间利用。现在的标准时间由世界和谐时间(UTC)提供

UTC

  世界和谐时间(UTC)又称世界统一时间,世界标准时间,国际调和时间,全称Coordinated
Universal
提姆e,是以原虎时秒长为底蕴,在每天上尽心接近于世界时的一种时光统计序列 

  这套时间系列被采用于广大互联网和万维网的科班中,中国新大陆、中国香岛、中国哈利法克斯、中国湖南、蒙古国、新加坡、大马、菲律宾、西澳大拉斯维加斯州的岁月与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天,闰年的四月比常年多一天

  闰年的概念是(可被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、五月每月有30天;假设是闰年,8月有29天,否则
,十月有28天。1、3、5、7、8、10、18月每月有31天

  在javascript中,月的盘算从0最先,所以1-1六月,分别用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 亚洲必赢手机官网 版权所有