Date 时间与日期

时间与日期
ECMAscript 提供了 Date 类型来解决时间与日期类型

日期格式化方法

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

  1. toDateString():以特定于实现的格式显示星期几、月、日和年;
  2. toTimeString():以特定于实现的格式显示时、分、秒和时区;
  3. toLocaleDateString():以特定于地区的格式显示星期几、月、日和年;、
  4. toLocaleTimeString():以特定于实现的格式显示时、分、秒;
  5. toUTCString():以特定于实现的格式完整的UTC日期。

与toLocaleSTring()和toString()方法一样,以上这些字符串格式方法的输出也是因浏览器而异的,因此没有哪一个方法能够用来在用户页面中显示一致的日期信息。
除了前面介绍的方法之外,还有一个toGMTString()的方法,这是一个与toUTCSTring()等价的方法,其存在目的在于确保向后兼容。不过,ECMAScript推荐现在编写的代码一律使用toUTCString()方法。
<table>
<tr>
<td>方法</td>
<td>说明</td>
</tr>
<tr>
<td>toDateString()</td>
<td>方法可把 Date 对象的日</td>
</tr>
<tr>
<td>toDateString()</td>
<td>方法可把 Date 对象的日期部分转换为字符串,并返回结果</td>
</tr>
<tr>
<td>toTimeString()</td>
<td>方法可把 Time 对象的日期部分转换为字符串,并返回结果</td>
</tr>
<tr>
<td>toLocaleDateString()</td>
<td>如2016年1月1日 </td>
</tr>
<tr>
<td>toLocaleTimeString()</td>
<td>如13:55:55 </td>
</tr>
<tr>
<td>getTime()</td>
<td>返回日期的毫秒数 </td>
</tr>
<tr>
<td>setTime()</td>
<td>设置日期的毫秒数</td>
</tr>
<tr>
<td>getFullYear()</td>
<td>获得年份,如2016 </td>
</tr>
<tr>
<td>setFullYear()</td>
<td>设置年份,如2009</td>
</tr>
<tr>
<td>getMonth()</td>
<td>获得月份,0表示一月 </td>
</tr>
<tr>
<td>setMonth()</td>
<td>设置月份,0表示一月,超过11增加年份 </td>
</tr>
<tr>
<td>getDate()</td>
<td>获得日期中的天数 </td>
</tr>
<tr>
<td>setDate()</td>
<td>设置天数,超过31增加月份 </td>
</tr>
<tr>
<td>getDay()</td>
<td>获得星期,0表示星期日,6表示星期六 </td>
</tr>
<tr>
<td>getHours()</td>
<td>获得小时,0~23 </td>
</tr>
<tr>
<td>setHours()</td>
<td>设置小时,0~23 </td>
</tr>
<tr>
<td>getMinutes()</td>
<td>获得分钟,0~59 </td>
</tr>
<tr>
<td>setMinutes()</td>
<td>设置分钟,0~59 </td>
</tr>
<tr>
<td>getSeconds()</td>
<td>获得秒数,0~59 </td>
</tr>
<tr>
<td>setSeconds()</td>
<td>设置秒数,0~59 </td>
</tr>
<tr>
<td>getMilliseconds()</td>
<td>获得毫秒 </td>
</tr>
<tr>
<td>setMilliseconds()</td>
<td>设置毫秒 </td>
</tr>
</table>

日期/时间组件方法

<table>
<tr>
<td>方法</td>
<td>说明</td>
</tr>
<tr>
<td>getTime()</td>
<td>返回表示日期的毫秒数;与valueOf()方法返回的值相同</td>
</tr>
<tr>
<td>setTime(毫秒)</td>
<td>以毫秒数设置日期,会改变整个日期</td>
</tr>
<tr>
<td>getFullYear()</td>
<td>取得4位数的年份(如2016而非仅16)</td>
</tr>
<tr>
<td>getUTCFullYear()</td>
<td>返回UTC日期的4位数年份</td>
</tr>
<tr>
<td>setFullYear(年)</td>
<td>设置日期的年份。传入的年份值必须是4位数字</td>
</tr>
<tr>
<td>setUTCFullYear(年)</td>
<td>设置UTC日期的年份。传入的年份值必须是4位数字</td>
</tr>
<tr>
<td>getMonth()</td>
<td>返回日期中的月份,其中0表示一月,11表示十二月</td>
</tr>
<tr>
<td>getUTCMonth()</td>
<td>返回UTC日期中的月份,其中0表示一月,11表示十二月</td>
</tr>
<tr>
<td>setMonth(月)</td>
<td>设置日期中的月份。传入的月份值必须大于0,超过11则增加年份</td>
</tr>
<tr>
<td>setUTCMonth(月)</td>
<td>设置UTC日期中的月份。传入的月份必须大于0,超过11则增加年份</td>
</tr>
<tr>
<td>getDate()</td>
<td>返回日期月份中的天数(1到31)</td>
</tr>
<tr>
<td>getUTCDate()</td>
<td>返回UTC日期月份中的天数(1到31)</td>
</tr>
<tr>
<td>setDate(日)</td>
<td>设置日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份</td>
</tr>
<tr>
<td>setUTCDate(日)</td>
<td>设置UTC日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份</td>
</tr>
<tr>
<td>getDay()</td>
<td>返回日期中星期的星期几(其中0表示星期日,6表示星期六)</td>
</tr>
<tr>
<td>getUTCDay()</td>
<td>返回UTC日期中星期的星期几(其中0表示星期日,6表示星期六)</td>
</tr>
<tr>
<td>getHours()</td>
<td>返回日期中的小时数(0到23)</td>
</tr>
<tr>
<td>getUTCHours()</td>
<td>返回UTC日期中的小时数(0到23)</td>
</tr>
<tr>
<td>setHours(时)</td>
<td>设置日期中的小时数,传入的值超过了23则增加月份中的天数。传入的值为负数,则实际值为前一天的24减参数的绝对值小时。</td>
</tr>
<tr>
<td>setUTCHours(时)</td>
<td>设置UTC日期中的小时数,传入的值超过了23则增加月份中的天数。传入的值为负数,则实际值为前一天的24减参数的绝对值小时。</td>
</tr>
<tr>
<td>getMinutes()</td>
<td>返回日期中的分钟数(0到59)。</td>
</tr>
<tr>
<td>getUTCMinutes()</td>
<td>返回UTC日期中的分钟数(0到59)。</td>
</tr>
<tr>
<td>setMibutes(分)</td>
<td>设置日期中的分钟数,传入的值超过59则增加小时数</td>
</tr>
<tr>
<td>setUTCMinutes(分)</td>
<td>设置UTC日期中的分钟数,传入的值超过59则增加小时数</td>
</tr>
<tr>
<td>getSeconds()</td>
<td>返回日期中的秒数(0到59)</td>
</tr>
<tr>
<td>getUTCSeconds()</td>
<td>返回UTC日期中的秒数(0到59)</td>
</tr>
<tr>
<td>setSeconds(秒)</td>
<td>设置日期中的秒数,传入的值超过59则增加分钟数</td>
</tr>
<tr>
<td>setUTCSeconds(秒)</td>
<td>设置UTC日期中的秒数,传入的值超过59则增加分钟数</td>
</tr>
<tr>
<td>getMilliseconds()</td>
<td>返回日期中的毫秒数</td>
</tr>
<tr>
<td>getUTCMilliseconds()</td>
<td>返回UTC日期中的毫秒数</td>
</tr>
<tr>
<td>setMilliseconds(毫秒)</td>
<td>设置日期中的毫秒数</td>
</tr>
<tr>
<td>setUTCMilliseconds(毫秒)</td>
<td>设置UTC日期中的毫秒数</td>
</tr>
<tr>
<td>getTimezoneOffset()</td>
<td>返回本地时间与UTC时间相差的分钟数。</td>
</tr>
</table>

日期计算

Date类中没有提供相关的日期计算方法,其实其已经给出了方便的日期计算方法,就是使用 getXXX()setXXX() 方法:

var date = new Date(2016 , 11 , 15 , 12 , 11, 0);
console.log(date.toLocaleString());
date.setDate(date.getDate()-120);//2016/8/17 下午12:11:00
//27天前的日期
console.log(date.toLocaleString());//2016/12/15下午12:11:00     


可以通过简单的封装就可以指定一套自己的日期计算方法,如:

function toCharacterString(date){
var localeString = date.toLocaleString();
localeString = localeString.replace("/"  , "年");
localeString = localeString.replace("/"  , "月");
localeString = localeString.replace(" "  , "日");
localeString = localeString.replace(":"  , "点");
localeString = localeString.replace(":"  , "分");
localeString = localeString + "秒";
console.log(localeString);
}
var date = new Date();
toCharacterString(date);// 2016年8月17日下午12点11分01秒     
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容