前言

学习Date对象之前,首先要先了解关于日期和时间的一些知识。比如,闰年、UTC等等。深入了解这些,有助于更好地理解javascript中的Date对象。

标准时间

一般而言的标准时间是指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组成

[注意]所有数字必须是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'
}

月日

一年有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

转载于:https://www.cnblogs.com/shiyou00/p/10647727.html

JavaScript 日期和时间基础知识相关推荐

  1. php时间戳基础知识点,php日期和时间基础知识--Unix时间戳

    /*1.取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. ...

  2. day29—JavaScript中DOM的基础知识应用

    转行学开发,代码100天--2018-04-14 JavaScript中DOM操作基础知识即对DOM元素进行增删改操作.主要表现与HTML元素的操作,以及对CSS样式的操作.其主要应用知识如下图: 通 ...

  3. JavaScript 面试必备的基础知识梳理(71个知识点)

    1. JavaScript简介 JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境. 如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用 ...

  4. convert.todatetime指定日期格式_SQL基础知识V2——常用日期函数

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 日期函数是数据库中经常需要使用到的,本期将常用的几个日期函数给小伙伴做详细的介绍. G ...

  5. JavaScript 日期和时间的格式化大汇总(收集)

    一.日期和时间的格式化 1.原生方法 1.1.使用 toLocaleString 方法 Date 对象有一个 toLocaleString 方法,该方法可以根据本地时间和地区设置格式化日期时间.例如: ...

  6. 【JavaScript】JS的基础知识

    JavaScript 一.什么是JavaScript? 二.JavaScript的用途 三.JS是如何运行的? 四.JS前置知识 4.1 JS书写格式 4.1.1 行内格式 4.1.2 内嵌格式 4. ...

  7. JavaScript和jQuery的基础知识和使用

    初识JavaScript 首先对于JavaScript和Java两种语言,除了语法和Java有些类似,其他部分没有任何关系.由于当时Java很火,为了推广才在名字中加了Java,也就是所谓的蹭热度. ...

  8. JavaScript 日期与时间转换

    1. 获取当前日期 使用实例:getnowDate('-'); getnowDate('.'); 结果实例:'2022-09-09'; '2022.09.09' /*** 获取当前日期* {param ...

  9. JavaScript模块化开发(一)基础知识

    2019独角兽企业重金招聘Python工程师标准>>> 随着前段JavaScript代码越来越重,如何组织JavaScript代码变得非常重要,好的组织方式,可以让别人和自己很好的理 ...

  10. SQLServer常用的日期和时间函数梳理

    今天给大家分享一下SQLServer常用的日期和时间函数知识笔记,希望对大家能有所帮助! 1.DATEADD(datepart,number,date) 作用:返回给指定日期加一个时间间隔后新的dat ...

最新文章

  1. 淮海工学院计算机组成原理,淮海工学院1112-1计算机组成原理试卷A.doc
  2. 工业用微型计算机(7)-指令系统(4)
  3. Liferay Portal额外研究-银狐999
  4. 《Python从小白到大牛》第5章 Python编码规范
  5. Potted Flower(线段树+dp)
  6. hadoop 3.0.0 alpha3 安装、配置
  7. 【100题】三十五 求一个矩阵中最大的二维矩阵(元素和最大)
  8. 2018 ideal 链接数据_利用 IDEA HTTP 请求文件访问 API 接口
  9. Comdo安全防火墙
  10. ansible中的file、cron、debug、template、lineinfile、blockinfile模块的介绍和使用
  11. appcan ajax mysql_AppCan里面的Ajax通信实例
  12. JavaEE-01-温故(集合、泛型、io、多线程)知新(junit、内省、路径问题)
  13. Matching the Blanks: Distributional Similarity for Relation Learning (通篇翻译)
  14. Android adb使用总结记录
  15. 详解APK静态分析引擎`quark-engine`的5大功能
  16. CV之IE之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成不同尺寸和质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)—五个架构设计思维导图
  17. [网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
  18. 浅谈MySQL中优化sql语句查询常用的30种方法
  19. D2RQ平台之本体操作
  20. Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment

热门文章

  1. EXCEL表格-绝对引用符$详解
  2. ionic html5 上传图片,ionic文件选择与ionic文件上传
  3. 力扣(LeetCode)刷题,简单+中等题(第36期)
  4. 条码打印软件之PDF的拆分合并功能
  5. tm影像辐射定标_「教程」遥感图像预处理之辐射定标
  6. 计算机毕业设计Python毕业论文总结基于Python实现的仓库库存管理系统[包运行成功]
  7. linux禁用137 138端口,如何关闭135、137、138、139、445端口方法
  8. Mac OS X磁盘重新分区后 BootCamp Windows启动项丢失
  9. 5G新方案!升级现有的基站和UE模拟器至5G毫米波频段
  10. php保存pdf旋转90度,怎么将PDF文件向左旋转90度?这款软件还有旋转功能!