JavaScript 中的日期和时间
前言
本篇的介绍涵盖以下部分:
1. 时间标准指的是什么?UCT和GMT 的概念、关联和区别?
2. 时间表示标准有哪些?
3. JS 中时间的处理
日期时间标准
日期的标准就不多说了 -- 公元纪年
是为纪念犹太人耶稣(基督)的诞生。他诞生的那一年为公元1年,诞生之前的年份称为“公元前n年”
简单来说,时间的标准就是以什么时间为起点开始计时。对于年份来说,举例来说,如果不使用公元纪年法,估计全世界交流起来就困难重重了(新中国54年,估计很把很多老外整晕)
时间标准其实挺多的。
在程序开发中甚至日常生活中,比较常见的就是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:05Z或143005Z,当时的北京时间表示为22:30:05+08:00或223005+0800,也可以简化成223005+08。
4. 日期和时间组合表示法
合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+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 中的日期和时间的更多相关文章
- javascript中关于日期和时间的基础知识
× 目录 [1]标准时间 [2]字符串 [3]闰年[4]月日[5]星期[6]时分秒 前面的话 在介绍Date对象之前,首先要先了解关于日期和时间的一些知识.比如,闰年.UTC等等.深入了解这些,有助于 ...
- 谈谈javascript中的日期Date对象
一.日期对象 在javascript中并没有日期型的数据类型,但是提供了一个日期对象可以操作日期和时间. 日期对象的创建: new Date();二.将日期对象转换为字符串 将日期对象转换为字 ...
- PHP中的日期和时间
日期和时间 1.UNIX时间戳 以32位整数表示的格林威治标准时间 这个UNIX时间戳整数是从1970年1月1日0时0分0秒(计算机元年)到现在的秒数 ...
- 【转】C/C++中的日期和时间 TIME_T与STRUCT TM转换——2013-08-25 16
http://www.cnblogs.com/Wiseman/archive/2005/10/24/260576.html 摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的 ...
- Java中的日期和时间
Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...
- MySQL中的日期和时间:使用和说明,以及常用函数
1.首先需要注意: 1.1 MySQL中把日期和时间是分开的. 以字符串2007-12-31 00:59:59为例: 日期部分:2007-12-31.这部分也可以叫做一个日期表达式. 时间部分:00: ...
- Day029 JDK8中新日期和时间API (二)
# JDK8中新日期和时间API (二) Instant介绍 Instant:时间线上的一个瞬时点. 这可能被用来记录应用程序中的事件时间 戳. 在处理时间和日期的时候,我们通常会想到年,月,日,时, ...
- Day029 JDK8中新日期和时间API (四)
JDK8中新日期和时间API 其他的一些API ZoneId:该类中包含了所有的时区信息,一个时区的ID,如 Europe/Paris ZonedDateTime:一个在ISO-8601日历系统时区的 ...
- JavaScript中的日期时间函数
1.Date对象具有多种构造函数,下面简单列举如下 new Date() new Date(milliseconds) new Date(datestring) new Date(year, mont ...
随机推荐
- FMX相当于在界面上自己又做了一个小操作系统
FMX的自画界面我也不看好,比如复制粘贴,太丑了,系统做得很好很精细的复制粘贴界面,就是无法调出,比如MIUI,复制粘贴还能有个放大镜,可以选择到屏幕边缘的文字,可以选择剪贴板内多个可粘贴的文字:还有 ...
- Nginx 的 Echo 模块 —— echo-nginx-module(转)
Nginx 有个 echo 模块可以用来输出一些简单的信息,例如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...
- 笔试题引出float数据的存储方式的深究
笔试题: #include <iostream>#include <stdio.h>#include <string.h>#include <conio.h& ...
- c#个性化安装包
近来想做一个模仿QQ或猎豹浏览器那样的个性化安装包,NSIS或IS等简单看了一下,比较复杂还不确定能不能实现. 想了一下,可以自己开发一个安装包程序,新建一个windows项目,但不知如何将已开发完成 ...
- HTML之框架(frameest、ifram)
1.frameset 最外层的去掉body用frameset <frameset rows="100,*"> 上下排版拆开,第一行高度占100,第二行*占剩下的 :co ...
- 解決 centos中-bash: vim: command not found
用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢? 输入 rpm -qa|grep vim ...
- myeclipse 8.6 插件安装之SVN
在这里我要说明一点,myEclipse 8.6的插件安装和之前的版本可能会有一些区别,下面是SVN插件的安装: 1.从官网下载site-1.6.13.zip文件,网址是:subclipse.tigri ...
- 设计模式值六大原则——开闭原则(OCP)
开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活的系统. 定义: 一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. S ...
- 利用Linux系统函数alarm() 来检测计算机性能
大家都知道,alarm() 是Linux系统自带的定时函数,操作系统管理进程时为每个进程分配了一个定时器,下面利用1秒钟定时,看计算机能计数多少来判断计算机的性能: #include<stdio ...
- 用SQL实现统计报表中的"小计"与"合计"的方法详解
本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下 客户提出需求,针对某一列分组加上小计,合计汇总.网上找 ...