http://heeroluo.net/Article/Detail/110

获取某个月份的天数

相信大家读小学的时候就知道一年十二个月各有多少天了,这里面有个特殊的存在——2月。闰年的2月有29天,非闰年的2月只有28天。估计不少人跟我一样,已经不记得闰年的规则了,这时候,下面的这个方法就派上用场了。

var date = new Date(2013, 2, 0);
date.getDate(); // 28
date = new Date(2012, 2, 0);
date.getDate(); // 29

创建Date对象时可以传入三个参数,分别是年、月、日,如果日的参数为0,那创建出来的对象表示的就是该月的最后一天,如此就可以知道那个月有多少天了。

同样的,我们也可以通过这个方法判断某年是否闰年:

function isLeapYear(year) {
return new Date(year, 2, 0).getDate() === 29;
}
isLeapYear(2012); // true

获取时区

日期类型的 getTimezoneOffset() 方法可以获取格林威治时间和本地时间之间的时间差,以分钟为单位。例如:

var date = new Date();
var timezoneOffset = date.getTimezoneOffset(); // 中国(东八区)为-480
-timezoneOffset / 60; // 8

把获取到的时间差除以60,再取负值就是所在的时区了。

除此以外,还有一个方法。调用日期类型的 toString() 后,可以得到一段固定格式的日期字符串:

new Date().toString(); // Sun Mar 10 2013 16:41:12 GMT+0800 (中国标准时间)

显而易见,GMT后面的+800就是我们要的时区了,只要通过正则表达式匹配一下就可以拿到该值。

/GMT([+-]\d+)/.test( new Date().toString() );
var timezone = RegExp.$1; // +0800

不过此时的 timezone 变量是字符串,如果要转成数字类型,还要进行一些处理。

计算运行时间

如何测量某段程序的执行时间呢?方法很简单,在执行前记录一次时间,执行后用当前时间减去执行前的时间,就得到结果了:

var startTime = new Date();
// some program
console.log(new Date() - startTime);

这里无需手动把日期转换为数字,因为进行减法运算的时候自然会强制转换。这样算出来的结果是毫秒级的,精度不是很够,不过对浏览器端的Javascript来说,也没必要纠结于1毫秒以内的消耗了。

删除cookie

准确地说,我们没法直接通过Javascript删除cookie。要想把某个cookie从这个世界抹杀掉,唯一的办法就是让它过期,这样浏览器的内建机制就会把它自动干掉。

而要让cookie过期,最直截了当的方法就是把它的过期时间设为最小值。Javascript里面能表示的最小日期就是1970年1月1日0时0点0分,通过 new Date(0) 就可以创建出这样一个日期对象:

var cookieName = 'name';	// cookie名
document.cookie = cookieName + '=' + '; expires=' + new Date(0).toUTCString();

Javascript日期类型的妙用的更多相关文章

  1. 关于JavaScript日期类型处理的总结

    在任何一门开发语言中,对日期时间类型的处理,必不可少也非常重要,长期以来对于JS的日期类型处理较为苍白.在这里做一个浅显的总结. Date 对象用于处理日期和时间.Date 对象用于处理日期和时间.D ...

  2. JavaScript 中的数字和日期类型

    本章节介绍如何掌握Javascript里的数字和日期类型 数字EDIT 在 JavaScript 里面,数字都是双精度浮点类型的 double-precision 64-bit binary form ...

  3. JavaScript 把字符串类型转换成日期类型

    今天在写习题时,遇到些小问题,在这里把答案分享给大家,希望能帮助到大家! 一.把字符串转换成日期类型 var str = "1997-3-12"; var d = new Date ...

  4. JavaScript日期对象使用总结

    javascript Date日期对象的创建 创建一个日期对象: var objDate=new Date([arguments list]); 我总结了参数形式主要有以下3种: new Date(& ...

  5. MongoDB日期类型查询

    一.前言 MongoDB 里面的日期类型是没有时区概念的,默认存储的是 ISODate("2018-04-02T13:19:16.418Z") 这种格式的零时区时间,比北京时间晚了 ...

  6. JavaScript变量类型检测总结

    JavaScript中的变量类型: 基本类型值:Undefined,Null,Boolean,Number和String. 按值访问(可直接操作保存在变量中的变量值): 复制规则:当复制基本类型值时: ...

  7. javascript日期格式处理

    一. 服务端返回的日期和时间之间有T Asp.net MVC中 action返回前台的日期类型数据 是带有 T的,如: 2015-07-07T10:15:01. 这样的数据在Chrome浏览器,会自动 ...

  8. JavaScript 日期格式

    有四种 JavaScript 日期输入格式: 类型 实例 ISO 日期 "2018-02-19" (国际标准) 短日期 "02/19/2018" 或者 &quo ...

  9. JavaScript 日期

    JavaScript 日期 JavaScript 日期输出 默认情况下,JavaScript将使用浏览器的时区并将日期格式显示为全文本字符串: Tue Apr 02 2019 09:01:19 GMT ...

随机推荐

  1. 微信开发-微信JSSDK错误:invalid url domain

    错误类型:invalid url domain 调试返回参数: { "errMsg": "config:invalid url domain" } 截图: 环境 ...

  2. Java实用知识记录 —— 截止到Java8

    记录Java实用知识点,截止(包括)到Java8,只作概要的描述,不涉及到具体细节.变量:int.long的包装类支持无符号位操作,即其在内存中的位可以用来全部表示正数."_"可以 ...

  3. Nand Flash基础知识与坏块管理机制的研究

    概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...

  4. 12.21-Android WebService(基于KSOAP2)

    KSOAP2_连接WebService *****我是小知识点******** Ksoap2提供了对soap序列化更好的支持.Ksoap2是一个轻量级的J2ME平台的实现框架,提供了soap协议消息的 ...

  5. asp.net中使用jquery ajax保存富文本的问题

    前提:为了保证页面的不刷新行为,所以采用了html+jquery+handler的页面保存方式,通过ajax将富文本内容传递给一般处理程序进行操作. 一.问题:1.大文件无法上传? 2.传入handl ...

  6. 349B - C. Mafia

    C - Mafia Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit S ...

  7. 原生addClass 方法 添加类函数

    function addClass(id,new_class){       var i,n=0;       new_class=new_class.split(",");   ...

  8. P3003 [USACO10DEC]苹果交货Apple Delivery

    题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course, she tr ...

  9. 07.十分钟学会tomcat数据源

    一.数据源的作用及操作原理 1,  首先先看下传统JDBC的操作 在tomcat中使用数据库连接池操作数据库 2,JNDI属于命名及目录查找接口,在javaee的javax.naming包中 这套AP ...

  10. H5定位

    百度地图javaScript API 一.在html文件中引入 <script src="http://api.map.baidu.com/api?ak=Uk9tDddYkrQImXw ...