JavaScript中的Date类型
ECMAScript中的Date类型是在早起Java中的java.util.Date类基础上构建的。为此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日0时开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的100000000年。
要创建一个日期对象,使用new操作符合Date构造函数即可。
var now = new Date();
在调用Date构造函数而不传参的情况下,新创建的对象自动获取当前日期和时间。如果想根据特定的日期和时间创建日期对象,必须传入表示该日期的毫秒数(1970年1月1日0时至该日期止经过的毫秒数)。
ECMAScript提供了两个方法:Date.parse()和Date.UTC()。
Date.parse()
Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数。ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此这个方法的行为因实现而异。将地区设置为美国的浏览器通常都接受下列日期格式:
♦ "月/日/年",如9/7/2017;
♦ "英文月名 日,年",如January 12,2004;
♦ "英文星期几英文月名 日 年 时:分:秒 时区",如Thur September 7 2017 00:00:00 GMT-0700。
♦ ISO 8601扩展格式YYYY-MM-DDTHH:mm:ss.sssZ(例如 2017-09-07T00:00:00)。只有兼容ECMAScript 5的实现支持这种格式。
例如,要为2017年9月7日创建一个日期对象,可以使用下面的代码:
var someDate = new Date(Date.parse("September 7,2017"));
如果传入Date.parse()方法的字符串不能表示日期,那么它会返回NaN。实际上,如果直接将表示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()。例如:
var someDate = new Date("September 7,2017");
Date.UTC()
Date.UTC()方法同样也返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息。Date.UTC()的参数分别是年份、基于0的月份(一月是0,二月是1)、月中的哪一天(1到31)、小时数(0到23)、分钟、秒以及毫秒数。在这些参数中,只有前两个参数(年和月)是必需的。如果没有提供月中的天数,则假设天数为1;如果省略其他参数,则统统假设为0。
//GMT时间2000年1月1日午夜零时
var y2k = new Date(Date.UTC(2000,0)); //GMT时间2005年5月5日下午5:55:55
var allFives = new Date(Date.UTC(2005,4,5,17,55,55));
跟Date.parse()一样,Date构造函数也会模仿Date.UTC(),但有一点明显不同;日期和时间都基于本地时区而非GMT创建。
ECMAScript 5添加了Date.now()方法,返回表示调用这个方法时的日期和时间的毫秒数。这个方法简化了使用Date对象分析代码的工作。
//取得开始时间
var start = Date.now(); //调用函数
doSomething(); //取得停止时间
var stop = Date.now(),result = stop - start;
支持Date.now()方法的浏览器包括IE9+、Firefox 3+、Safari 3+、Opera 10.5和Chrome。在不支持它的浏览器中,使用+操作符获取Date对象的时间戳,也可以达到同样的目的。
//取得开始时间
var start = +new Date(); //调用函数
doSomething(); //取得停止时间
var stop = +new Date(),result = stop - start;
日期格式化方法
Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下:
♦ toDateString()——以特定于实现的格式显示星期几、月、日和年;
♦ toTimeString()——以特定于实现的格式显示时、分、秒和时区;
♦ toLocaleDateString()——以特定于地区的格式显示星期几、月、日和年;
♦ toLocaleTimeString()——以特定于实现的格式显示时、分、秒;
♦ toUTCString()——以特定于实现的格式完整的UTC日期。
Date类型的方法
♦ getTime():返回表示日期的毫秒数;与valueOf()方法返回的值相同
♦ setTime(毫秒):一毫秒数设置日期,会改变整个日期
♦ getFullYear():取得4位数的年份
♦ getUTCFullYear():返回URC日期的4位数年份
♦ setFullYear(年):设置日期的年份。传入的年份值必须是4位数字。
♦ setUTCFullYear(年):设置UTC日期的年份。传入的年份值必须是4位数字。
♦ getMonth():返回日期中的月份,其中0表示一月,11表示十二月。
♦ getUTCMonth():返回UTC日期中的月份,其中0表示一月,11表示十二月。
♦ setMonth(月):设置日期的月份。传入的月份值必须大于0,超过11则增加年份
♦ setUTCMonth(月):设置UTC日期的月份。传入的月份值必须大于0,超过11则增加年份
♦ getDate():返回日期月份中的天数(1到31)
♦ getUTCDate():返回UTC日期月份中的天数(1到31)
♦ setDate(日):设置日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份。
♦ setUTCDate(日):设置UTC日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份。
♦ getDay():返回日期中星期的星期几(其中0表示星期日,6表示星期六)
♦ getUTCDay():返回UTC日期中星期的星期几(其中0表示星期日,6表示星期六)
♦ getHours():返回日期中的小时数(0到23)
♦ getUTCHours():返回UTC日期中的小时数(0到23)
♦ setHours(时):设置日期中的小时数。传入的值超过了23则增加月份中的天数
♦ setUTCHours(时):设置UTC日期中的小时数。传入的值超过了23则增加月份中的天数
♦ getMinutes():返回日期中的分钟数(0到59)
♦ getUTCMinutes():返回UTC日期中的分钟数(0到59)
♦ setMinutes(分):设置日期中的分钟数。传入的值超过59则增加小时数
♦ setUTCMinutes(分):设置UTC日期中的分钟数。传入的值超过59则增加小时数
♦ getSeconds():返回日期中的秒数(0到59)
♦ getUTCSeconds():返回UTC日期中的秒数(0到59)
♦ setSeconds(秒):设置日期中的秒数。传入的值超过59则增加分钟数
♦ setUTCSeconds(秒):设置UTC日期中的秒数。传入的值超过59则增加分钟数
♦ getMilliseconds():返回日期中的毫秒数
♦ getUTCMilliseconds():返回UTC日期中的毫秒数
♦ setMilliseconds(毫秒):设置日期中的毫秒数
♦ setUTCMilliseconds(毫秒):设置UTC日期中的毫秒数
♦ getTimezoneOffset():返回本地时间与UTC时间相差的分钟数。例如,美国东部标准时间返回300;中国标准时间返回-480。
JavaScript中的Date类型的更多相关文章
- JavaScript中判断对象类型方法大全1
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- 转 JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- JavaScript中两种类型的全局对象/函数【转】
Snandy Stop, thinking is the essence of progress. JavaScript中两种类型的全局对象/函数 这里所说的JavaScript指浏览器环境中的包括宿 ...
- JavaScript中判断变量类型最简洁的实现方法以及自动类型转换(#################################)
这篇文章主要介绍了JavaScript中判断整字类型最简洁的实现方法,本文给出多个判断整数的方法,最后总结出一个最短.最简洁的实现方法,需要的朋友可以参考下 我们知道JavaScript提供了type ...
- javaScript中Number数字类型方法入门
前言 Number和Math都属于JavaScript中的内置对象,Number数字类型作为基础数据类型,我们在开发过程中会经常用到,包括数字精度的格式化,还有字符串转换成数字等操作. Number数 ...
- 向mysql中插入Date类型的数据
先看数据库表的定义 date字段为sql.date类型.我要向其中插入指定的日期和当前日期. 一.插入当前日期 思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库.代码如下 ...
- JavaScript高级编程——Date类型
JavaScript高级编程——Date类型 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...
- es中的date类型
JSON中没有date类型,es中的date可以由下面3种方式表示: ①格式化的date字符串,例如"2018-01-01"或者"2018-01-01 12:00:00& ...
随机推荐
- MSSQL 错误:在将 varchar 值 '1,2,3,5,6' 转换成数据类型 int 时失败。
MSSQL 错误:在将 varchar 值 '1,2,3,5,6' 转换成数据类型 int 时失败.
- IE浏览器Bug总结
每每在网上搜索IE浏览器Bug时,总是骂声一片,特别是前端工程师,每天都要面对,IE浏览器特别是IE6,存在很多Bug,对Web标准的支持也拖后腿,但不可否认,IE浏览器是曾经的霸主,它的贡献也是巨大 ...
- perl6 修改文件并覆盖
use v6; my $filename = 'data.txt'; my $data = slurp $filename; say $data; $data ~~ s/'4'/'ABC'/; say ...
- Django 1.10中文文档-第一个应用Part4-表单和通用视图
本教程接Part3开始.继续网页投票应用程序,并将重点介绍简单的表单处理和精简代码. 一个简单表单 更新一下在上一个教程中编写的投票详细页面的模板polls/detail.html,让它包含一个HTM ...
- PHP 接入(第三方登录)QQ 登录 OAuth2.0 过程中遇到的坑
前言 绝大多数网站都集成了第三方登录,降低了注册门槛,增强了用户体验.最近看了看 QQ 互联上 QQ 登录的接口文档.接入 QQ 登录的一般流程是这样的:先申请开发者 -> 然后创建应用(拿到一 ...
- C# 判断一个单链表是否有环及环长和环的入口点
1.为什么写这个随笔? 前几天参加一个电面,被问到这个问题,想总结一下. 2.为什么标题强调C#? 想在网上看看代码,却没找到C#版的,于是自己用C#实现一下. 一.解决问题的思路 1.一种比较耗空间 ...
- 2015多校第6场 HDU 5361 并查集,最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5361 题意:有n个点1-n, 每个点到相邻点的距离是1,然后每个点可以通过花费c[i]的钱从i点走到距 ...
- 1.ubuntu的安装
分两种 1. 在VMware中安装,则与Centos的安装类似 2. 在VirtualBox里安装 --> 1. 先“新建” 一个虚拟电脑 2. 根据需求编辑虚拟电脑的信息 (具体的大小.内存等 ...
- django celery异步框架
描述:实现运维平台的异步执行与定时任务,以下简单描述了安装过程及使用. 安装django和celery pip install django pip install celery pip inst ...
- log4j日志相对路径,Tomcat(第三方和Springboot内置)参数catalina.home和catalina.base的设置
关于Log4j日志相对路径的配置请看:log4j 产生的日志位置设置 和 catalina.home.catalina.base . 由于我们在Log4j的配置中引入了系统属性${catalina.b ...