JavaScript日期类型的一些用法介绍


Posted in Javascript onMarch 02, 2015

获取某个月份的天数

相信大家读小学的时候就知道一年十二个月各有多少天了,这里面有个特殊的存在——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~11,0表示一月)、日,如果日的参数为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 相关文章推荐
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
JavaScript面向对象程序设计三 原型模式(上)
Dec 21 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
jQuery中:contains选择器用法实例
Dec 30 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
Apr 13 Javascript
canvas实现探照灯效果
Feb 07 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
Jan 24 Javascript
vue的for循环使用方法
Feb 12 Javascript
Vue的编码技巧与规范使用详解
Aug 28 Javascript
JS判断数组是否包含某元素实现方法汇总
Jun 24 Javascript
了解Javascript的模块化开发
Mar 02 #Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 #Javascript
js实现图片漂浮效果的方法
Mar 02 #Javascript
ECMAScript 5中的属性描述符详解
Mar 02 #Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 #Javascript
JavaScript数组常用方法
Mar 02 #Javascript
使用npm发布Node.JS程序包教程
Mar 02 #Javascript
You might like
smarty实例教程
2006/11/19 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP header函数分析详解
2011/08/06 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
JS 控制CSS样式表
2009/08/20 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
购买原创艺术品:Zatista
2019/11/09 全球购物
材料采购员岗位职责
2013/12/17 职场文书
写给女生的道歉信
2014/01/08 职场文书
结婚典礼证婚词
2014/01/11 职场文书
海洋科学专业求职信
2014/08/10 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
Spring Bean是如何初始化的详解
2022/03/22 Java/Android