JavaScript 时间与日期

JavaScript 时间与日期

  ECMAScript 提供了 Date 类型来处理时间和日期。Date 类型内置一系列获取和设置日期时间信息的方法。

Date 类型

  ECMAScript 中的 Date 类型是在早期 Java 中 java.util.Date 类基础上构建的。为此,Date类型使用 UTC(Coordinated Universal Time,国际协调时间[又称世界统一时间]) 1970 年1月1日午夜(零时)开始经过的毫秒来保存日期。在使用这种数据存储格式的条件下,Date 类型保存的日期能够精确到 1970 年1月1日之前或之后的285616 年。

创建一个日期对象,使用 new 运算符和 Date 构造方法(构造函数)即可。在调用 Date 构造方法而不传递参数的情况下,新建的对象自动获取当前的时间和日期。

var date= new Date(); // 创建日期对象
alert(date); // 不同浏览器显示不同

ECMAScript 提供了两个方法,Date.parse()和 Date.UTC()

  Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应的毫秒数。ECMA-262 没有定义Date.parse()应该支持哪种日期格式,因此方法的行为因实现而异,因地区而异。默认通常接收的日期格式如下:

  • 1.‘月/日/年’,如 6/13/2011;

  • 2.‘英文月名 日, 年’,如 May 25, 2004;

  • 3.‘英文星期几 英文月名 日 年 时:分:秒 时区’,如 Tue May 25 2004 00:00:00 GMT-070

例如:

alert(Date.parse('6/13/2011')); 

注意:如果Date.parse()没有传入或者不是标准的日期格式,那么就会返回 NaN

  Date.UTC()方法同样也返回表示日期的毫秒数,但它与 Date.parse()在构建值时使用不同的信息。(年份,基于 0 的月份[0 表示 1 月,1 表示 2 月],月中的哪一天[1-31],小时数[0-23],分钟,秒以及毫秒)。只有前两个参数是必须的。如果没有提供月数,则天数为 1;如果省略其他参数,则统统为 0.

注意:如果 Date.UTC()参数传递错误,那么就会出现负值或者 NaN 等非法信息。

日期格式化方法

Date 类型还有一些专门用于将日期格式化为字符串的方法。

var date= new Date();
alert(date.toDateString()); //以特定的格式显示星期几、月、日和年
alert(date.toTimeString()); //以特定的格式显示时、分、秒和时区
alert(date.toLocaleDateString()); //以特定地区格式显示星期几、月、日和年 
alert(date.toLocaleTimeString()); //以特定地区格式显示时、分、秒和时区 
alert(date.toUTCString()); //以特定的格式显示完整的UTC日期。
组件方法

  组件方法,是为我们单独获取你想要的各种时间/日期而提供的方法。需要注意的时候,这些方法中,有带 UTC 的,有不带 UTC 的。UTC 日期指的是在没有时区偏差的情况下的日期值。

alert(date.getTime()); //获取日期的毫秒数,和 valueOf()返回一致
alert(date.setTime(100)); //以毫秒数设置日期,会改变整个日期
alert(date.getFullYear()); //获取四位年份 
alert(date.setFullYear(2012)); //设置四位年份,返回的是毫秒数 
alert(date.getMonth()); //获取月份,没指定月份,从0开始算起
alert(date.setMonth(11)); // 设置月份
alert(date.getDate()); // 获取日期
alert(date.setDate(8)); // 设置日期,返回毫秒数
alert(date.getDay()); //返回星期几,0表示星期日,6表示星期六
alert(date.setDay(2)); // 设置星期几
alert(date.getHours()); // 返回时
alert(date.setHours(12)); //设置时
alert(date.getMinutes()); //返回分钟
alert(date.setMinutes(22)); //设置分钟
alert(date.getSeconds()); // 返回秒数
alert(date.setSeconds(44)); // 设置秒数
alert(date.getMilliseconds()); //返回 毫 秒 数
alert(date.setMilliseconds()); //设置毫秒数 
alert(box.getTimezoneOffset()); //返回本地时间和UT 时间相差的分钟数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值