前言

本篇的介绍涵盖以下部分:

1. 时间标准指的是什么?UCT和GMT 的概念、关联和区别?

2. 时间表示标准有哪些?

3. JS 中时间的处理

日期时间标准

日期的标准就不多说了 -- 公元纪年

是为纪念犹太人耶稣(基督)的诞生。他诞生的那一年为公元1年,诞生之前的年份称为“公元前n年”

简单来说,时间的标准就是以什么时间为起点开始计时。对于年份来说,举例来说,如果不使用公元纪年法,估计全世界交流起来就困难重重了(新中国54年,估计很把很多老外整晕)

时间标准其实挺多的。

原子时 · 协调世界时(UTC) · 格林尼治平时(GMT) · 地球时(TT) · 力学时(DT)

在程序开发中甚至日常生活中,比较常见的就是UTC和GMT了。

UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度。UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。

GMT(Greenwich Mean Time)是格林尼治平时:
由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。

为了确保协调世界时与世界时(UT1)相差不会超过0.9秒,有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。

两者的关系:

UTC = GMT +/- 0.9 s
因此 UTC 间中需要进行 "闰秒" 以控制两者相差。

以上介绍可以统统不看, 一言之,UTC和 GMT就是世界标准时间, 两者的差距很小。

日期时间表示标准

日期和时间的计算标准有了。但是表示上却也可以千差万异。

2013/08/16

08/16/2013

13/08/16

.。。。。。

于是,国际标准化组织ISO 出来了,制定了一个8601系列 《数据存储和交换形式·信息交换·日期和时间的表示方法》。

目前是第三版ISO8601:2004以替代第一版ISO8601:1988与第二版ISO8601:2000

主要的部分列一下:

1. 日期表示法

年为4位数,月为2位数,月中的日为2位数,例如,日期(2013年8月16日)可表示为2013-08-16,或20130816。

2. 日历星期和日表示法

可以用2位数表示本年内第几个日历星期;

每个日历星期从星期一开始,星期日为第7天

3. 时间表示方法

小时、分和秒都用2位数表示,对UTC时间最后加一个大写字母Z,其他时区用实际时间加时差表示。如UTC时间下午2点30分5秒表示为14:30:05Z143005Z,当时的北京时间表示为22:30:05+08:00223005+0800,也可以简化成223005+08

4. 日期和时间组合表示法

合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:0020040503T173008+08

需要特别提出来说的是:

星期天在西方是作为一个星期的第一天

在中国则是最后一天。

也就是所ISO标准和中国的习惯是一致的。但是目前许多软件、语言什么的都是国外开发的,时间上还是延续了他们自己的习惯。

Javascript 中的日期时间

方法 描述 FF IE
Date() 返回当日的日期和时间。 1 3
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 1 3
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 1 3
getMonth() 从 Date 对象返回月份 (0 ~ 11)。 1 3
getFullYear() 从 Date 对象以四位数字返回年份。 1 4
getYear() 请使用 getFullYear() 方法代替。 1 3
getHours() 返回 Date 对象的小时 (0 ~ 23)。 1 3
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 1 3
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 1 3
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。 1 4
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。 1 3
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 1 3
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 1 4
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 1 4
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。 1 4
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。 1 4
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。 1 4
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 1 4
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 1 4
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 1 4
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 1 3
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。 1 3
setMonth() 设置 Date 对象中月份 (0 ~ 11)。 1 3
setFullYear() 设置 Date 对象中的年份(四位数字)。 1 4
setYear() 请使用 setFullYear() 方法代替。 1 3
setHours() 设置 Date 对象中的小时 (0 ~ 23)。 1 3
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。 1 3
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。 1 3
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。 1 4
setTime() 以毫秒设置 Date 对象。 1 3
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 1 4
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 1 4
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。 1 4
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 1 4
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 1 4
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。 1 4
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 1 4
toSource() 返回该对象的源代码。 1 -
toString() 把 Date 对象转换为字符串。 1 4
toTimeString() 把 Date 对象的时间部分转换为字符串。 1 4
toDateString() 把 Date 对象的日期部分转换为字符串。 1 4
toGMTString() 请使用 toUTCString() 方法代替。 1 3
toUTCString() 根据世界时,把 Date 对象转换为字符串。 1 4
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。 1 3
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 1 3
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 1 3
UTC() 根据世界时返回 1997 年 1 月 1 日 到指定日期的毫秒数。 1 3
valueOf() 返回 Date 对象的原始值。  

以上也可以统统不看, 需要特别说的是:

Javascript 把 星期天 作为一周的开始。 使用getDay() 这个方法时就得小心了。

getDay() 返回 0-6 之间的数值, 2013/08/18  是星期天, 返回值是 0

<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var date = new Date("2013/08/18");
alert(date.getDay());
</script>
</HEAD><BODY></BODY>
</HTML>

JavaScript 中的日期和时间相关推荐

  1. date js 减去_从JavaScript中的日期中减去天,月,年

    从JavaScript中的日期中减去天,月,年 有谁知道约会(例如今天)并回溯X天,X个月和X年的简单方法吗? 我已经尝试过: var date = new Date(); $("#sear ...

  2. JS中的日期和时间详解

    JS中的日期和时间详解 关于Date()构造函数 简单实例 用Date()构造函数创建时钟 关于Date()构造函数 Date()构造函数是javascript的核心语言部分,用来创建表示时间和日期的 ...

  3. 【转】C/C++中的日期和时间

    头文件 time.h 函数用途 函数名 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 得到以ASCII码表示的时间 asctime 得到字符串表 ...

  4. C++中的日期和时间

    1.C++中的时间和日期 C++标准库没有提供所谓的日期类型,C++继承了C语言用于日期和时间操作的结构和函数.为了使用日期和时间相关的函数和结构,需要在C++程序中引用"ctime&quo ...

  5. matlab产生时间数组以月为单位_Matlab中处理日期与时间的函数

    Matlab用三种格式来表示日期与时间 (1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的的天数,例如,2008年8月26日夜时0点钟被表示为733646,而这同一天的中午12点就被表示 ...

  6. MySQL中的日期和时间类型

    文章目录 1 MySQL中的日期和时间类型 1 MySQL中的日期和时间类型 日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型.其中,YEAR类型表示年, ...

  7. C++中的日期和时间 time_t与struct tm转换

    C++中的日期和时间 time_t与struct tm转换 通过学习许多C/C++库,可以有很多操作.使用时间的方法.但在这之前需要了解一些 "时间"和"日期" ...

  8. C/C++中的日期和时间

    C/C++中的日期和时间 由 zhanjun 在 周五, 2006-03-24 08:11 提交 C/C++中的日期和时间 作者:日期和时间 出处:日期和时间 更新时间: 2005年09月15日 摘要 ...

  9. SQL Server中的日期和时间:DATEADD()

    我们现在处于SQL Server和Azure SQL数据库中关于日期和时间的长篇系列的主页. 本周我们将讨论日期和时间中我最喜欢的T-SQL函数之一:  DATEADD(). 句法 与类似的功能一样, ...

最新文章

  1. hp designiet 500绘图仪程序_邹军:通过数控宏程序实现刀具寿命管理
  2. 【Android压力测试】monkey压力测试
  3. 有了这三个神器工具集,应用开发想怎么玩就怎么玩
  4. 21天通关python 磁力_python 磁力链接搜索器
  5. js 将16进制颜色转为RGBA
  6. java图片二值化_实现图像的二值化(java+opencv)
  7. 电脑右键打印不见了_win7右键没有打印选项怎么办|右键菜单没有压缩选项怎么解决|右键没有图形选项解决方法-系统城...
  8. 互联网公司怪相:一边裁员,一边忙着做慈善
  9. python打印九九乘法表上三角_用Python打印九九乘法表正三角和倒三角。
  10. 2019年的每一天日更只为等待她的出现,好好过余生,庆余年 | 掘金年度征文
  11. 老徐WEB:js入门学习 - javascript变量的数据类型
  12. Docker与Jib(maven插件版)实战
  13. 家庭影院投影仪哪款值得买?2022年双11家庭影院4K投影仪首选当贝X3 Pro
  14. 3 款非常实用的 Node.js 版本管理工具
  15. 怎么理解什么是大数据呢?
  16. 触动千亿电商市场 BitCherry星耀雅加达
  17. 排名趋于稳定后,最新的博主排名(TOP10)
  18. 【安规】电气间隙和爬电距离如何确定
  19. 3dsmax游戏角色头部建模教程
  20. 2131数据结构实验之栈与队列一:进制转换

热门文章

  1. Django 配置出错模板
  2. php 数据处理--合并,拆分,追加,去重
  3. CABasicAnimation 使用
  4. Scala中的None,Nothing,Null,Nil
  5. oracle 数据类型详解---日期型(转载)
  6. [转]WF事件驱动(4) -持久化
  7. sql server 对象名无效的解决方法
  8. 从矩阵分解到FM的演进、FM如何用于召回和排序以及实现说明
  9. github push代码出错fatal: Authentication failed for ‘https:/
  10. PyTorch系列入门到精通——autograd与逻辑回归