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 相关文章推荐
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
javascript右下角弹层及自动隐藏(自己编写)
Nov 20 Javascript
JS delegate与live浅析
Dec 21 Javascript
js检测浏览器版本、核心、是否移动端示例
Apr 24 Javascript
js打开windows上的可执行文件示例
May 27 Javascript
浅析JS动态创建元素【两种方法】
Apr 20 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
Apr 19 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
Jan 13 Javascript
js实时监控文本框输入字数的实例代码
Jan 18 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
解决layui数据表格Date日期格式的回显Object的问题
Sep 19 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
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
vue写一个组件
2018/04/09 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
简单的Python抓taobao图片爬虫
2014/10/26 Python
python套接字流重定向实例汇总
2016/03/03 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
python实现视频分帧效果
2019/05/31 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
如何用python写个模板引擎
2021/01/14 Python
Joules美国官网:出色的英国风格
2017/10/30 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
业务内勤岗位职责
2014/04/30 职场文书
2015年班组长工作总结
2015/04/10 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
2019感恩宣传标语!
2019/07/05 职场文书