`
chaoyi
  • 浏览: 309577 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

第九章:时间与日期

 
阅读更多

学习要点:
1.Date 类型
2.通用的方法
3.格式化方法
4.组件方法

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 构造方法(构造函数)即可。

var box = new Date(); //创建一个日期对象

 
在调用 Date 构造方法而不传递参数的情况下, 新建的对象自动获取当前的时间和日期。

alert(box); //不同浏览器显示不同

 
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')); //1307894400000

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

alert(Date.parse()); //NaN

 
如果想输出指定的日期,那么把 Date.parse()传入 Date 构造方法里。

var box = new Date(Date.parse('6/13/2011'));//Mon Jun 13 2011 00:00:00 GMT+0800
var box = new Date('6/13/2011'); //直接传入,Date.parse()后台被调用

 
PS:Date 对象及其在不同浏览器中的实现有许多奇怪的行为。其中有一种倾向是将超出的范围的值替换成当前的值,以便生成输出。例如,在解析“January 32, 2007”时,有的浏览器会讲其解释为“February 1, 2007” 。而 Opera 则倾向与插入当前月份的当前日期。
Date.UTC()方法同样也返回表示日期的毫秒数, 但它与 Date.parse()在构建值时使用不同的信息。 (年份, 基于 0 的月份[0 表示 1 月, 1 表示 2 月], 月中的哪一天[1-31], 小时数[0-23],分钟,秒以及毫秒)。只有前两个参数是必须的。如果没有提供月数,则天数为 1;如果省略其他参数,则统统为 0.

alert(Date.UTC(2011,11)); //1322697600000

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

alert(Date.UTC()); //负值或者 NaN

 
如果要输出指定日期,那么直接把 Date.UTC()传入 Date 构造方法里即可。

var box = new Date(Date.UTC(2011,11, 5, 15, 13, 16));

 
二.通用的方法
与其他类型一样, Date 类型也重写了 toLocaleString()、 toString()和 valueOf()方法; 但这些方法返回值与其他类型中的方法不同。

var box = new Date(Date.UTC(2011,11, 5, 15, 13, 16));
alert('toString:' + box.toString());
alert('toLocaleString:' + box.toLocaleString()); //按本地格式输出

 
PS:这两个方法在不同浏览器显示的效果又不一样,但不用担心,这两个方法只是在调试比较有用,在显示时间和日期上,没什么价值。valueOf()方法显示毫秒数。

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

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

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

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

 

PS: 以上方法除了 getTimezoneOffset(), 其他都具有 UTC 功能, 例如 setDate()及 getDate()
获取星期几,那么就会有 setUTCDate()及 getUTCDate()。表示世界协调时间。

分享到:
评论

相关推荐

    战略营销计划》第九章:销售计划.doc

    《战略营销计划》第九章便是专注于探讨如何构建一个能够帮助企业达到销售和市场目标的有效销售计划。本章节所涉及的销售计划制定原则和具体步骤,对于任何希望建立明确市场定位和提升销售业绩的企业来说,都具有极高...

    第9章 时间与日期1

    在JavaScript中,时间与日期的处理主要依赖于`Date`对象。`Date`类型是ECMAScript中用来管理和操作日期和时间的核心工具,它的设计灵感来源于Java的`java.util.Date`类。`Date`对象以UTC(国际协调时间)为基础,从...

    c语言函数库-第六章(时间和日期函数)

    ### C语言函数库第六章(时间和日期函数) 在C语言中,处理时间和日期的功能非常重要,尤其是在需要进行时间戳记录、日期计算或者定时任务等场景。本章节将详细介绍C语言中的几个关键时间与日期处理函数,包括`...

    python数据分析第九章资料

    第九章的内容通常会深入探讨如何使用Python进行高效的数据分析,包括数据预处理、数据清洗、统计分析以及可视化等多个环节。以下是对第九章可能涉及的知识点的详细说明: 1. **Pandas库**:Python中的Pandas库是...

    第九章:增量式爬虫_Python爬虫教程_

    增量式爬虫是网络爬虫的一种策略,与全量爬虫不同,它不是一次性抓取整个网站的所有页面,而是有选择地抓取自上次爬行以来发生变化或新出现的页面。这种方式在处理大规模网站时非常实用,因为它可以有效减少网络带宽...

    Java语言设计基础篇第九章课后习题答案

    ### Java语言设计基础篇第九章课后习题解析 #### 9.1 题目解析:矩形类实现及应用实例 **题目背景:** 本题要求设计一个`Rectangle`类来表示矩形,该类包含宽度和高度两个属性,并提供计算面积和周长的方法。同时...

    a smarter way to learn javascript 2013

    - **第9章:Prompts** —— 如何使用`prompt()`函数从用户获取输入。 - **第10章:if语句** —— 介绍条件分支的基本用法。 - **第11章:比较运算符** —— 包括等于、不等于、小于、大于等。 - **第12章:if...else...

    Lotus Notes 教程

    第9章: 博客与论坛 了解如何在Lotus Notes中创建和管理博客,以及参与论坛讨论,促进团队协作。 第10章: 数据库设计 探讨数据库的基本概念,学习如何设计和创建自定义数据库模板,以满足特定业务需求。 第11章:...

    优质Python教程 Python3.7从基础入门到精通进阶教程 第10章 日期和时间 共22页.ppt

    第9章 模块与类库.ppt 第10章 日期和时间.ppt 第11章 迭代器、生成器与装饰器.ppt 第12章 文件与文件系统.ppt 第13章 基于thinter的GUI编程.ppt 第14章 Python的高级技术.ppt 第15章 数据库的应用.ppt 第16章 网络...

    第二十九章:Nginx应用优化1

    设置合适的`client_body_timeout`、`keepalive_timeout`等参数可以控制客户端连接的超时时间,避免资源浪费。同时,启用`gzip`压缩可以减少数据传输量,提高网络效率。 4. **访问控制**: 可以通过`allow`和`deny...

    高级JSON表单规范第7章:日期和时间小部件

    在JSON表单规范中,第7章专门探讨了“日期和时间小部件”这一主题,这对于构建健壮、用户友好的数据输入系统至关重要。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和客户端...

    《PHP编程宝典》光盘源码(上)

    7. **第9章:面向对象编程** - 阐述PHP的类和对象概念,包括类的定义、属性和方法、构造函数、析构函数、封装、继承和多态性。 8. **第10章:数据库连接与查询** - 介绍如何使用PHP连接MySQL或其他数据库,执行SQL...

    delphi7.0学习资料11-25章

    2. **第13章:时间日期组件** - Delphi提供了一系列组件来处理时间和日期,例如TDateTimePicker和TTimeEdit。这部分内容可能涵盖如何显示、编辑和处理日期与时间值,以及如何进行日期计算和格式化。 3. **第14章:...

    JAVA程序设计PPT

    9. **第九章:接口与内部类** - 解释接口的用途,如何实现接口,以及内部类(匿名类,局部内部类,静态内部类)的使用场景。 10. **第十章:多线程** - 讲解并发编程,包括线程的创建,同步机制(synchronized,...

    PHP自学手册完整版

    ### 第九章:会话管理 PHP的session机制允许在不同页面间共享数据,本章会讲述如何创建和管理session,防止跨站请求伪造(CSRF)攻击。 ### 第十章:错误与异常处理 了解如何正确处理程序中的错误和异常对于编写...

    Julia语言程序设计

    - **第9章:字符串** - **字符串连接**:拼接多个字符串。 - **格式化输出**:格式化字符串输出。 - **第10章:日期时间** - **日期时间对象**:创建日期时间对象。 - **日期时间操作**:加减日期时间、格式化...

    flasktutorial

    第2章:模板第3章:Web表单第4章:数据库第5章:用户登录第6章:配置文件页面和头像第7章:错误处理第8章:关注者第9章:分页第10章:电子邮件支持第11章:整容第12章:日期和时间第13章:I18n和L10n第14章:Ajax第...

    C#教学课件:第9章 字符串与时间.ppt

    本章将深入探讨C#中的字符串处理,包括String类、StringBuilder类、正则表达式以及日期和时间的处理。 1. String类 String类是.NET框架提供的一种不可变类型,意味着一旦创建了字符串对象,就不能改变它的内容。...

    JBuider第七章:Java.util包.rar

    Java 8引入了新的日期时间API,如LocalDate、LocalTime、LocalDateTime等,更加简洁易用。 5. **事件监听机制**: Java.util包中的EventListener接口和EventObject类是Java AWT和Swing事件处理的基础。通过监听器...

Global site tag (gtag.js) - Google Analytics