第9章 时间与日期


第9999章时间与日期 学 习要 点: 1.Date 类型 2.通 用的 方法 3.格 式化 方法 4.组 件方 法 主讲教师:李炎恢 合作 网站: http://http://http://http://www.ibeifeng.comwww.ibeifeng.comwww.ibeifeng.comwww.ibeifeng.com 讲师博客: http://hi.baidu.com/http://hi.baidu.com/http://hi.baidu.com/http://hi.baidu.com/李炎恢 ECMAScript 提供了Date 类 型来 处理 时间 和日 期 。Date 类 型内 置一 系列 获取 和设 置日 期 时 间信 息的 方法 。 一.Date 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()。 表示 世界 协调 时间 。 感谢收看本次教程! 本 课程 是由 北风 网 (ibeifeng.com)(ibeifeng.com)(ibeifeng.com)(ibeifeng.com) 瓢城Web Web Web Web 俱 乐部 (yc60.com)(yc60.com)(yc60.com)(yc60.com)联合提 供: 本 次主 讲老 师: 李 炎恢 我 的博 客: hi.baidu.com/hi.baidu.com/hi.baidu.com/hi.baidu.com/李 炎恢 //// 我 的邮 件 :yc60.com@gmail.comyc60.com@gmail.comyc60.com@gmail.comyc60.com@gmail.com
还剩3页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

java-man

贡献于2013-11-12

下载需要 2 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf