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 相关文章推荐
收集的10个免费的jQuery相册
Feb 26 Javascript
jquery获取table中的某行全部td的内容方法
Mar 08 Javascript
函数式 JavaScript(一)简介
Jul 07 Javascript
js计算任意值之间随机数的方法
Jan 16 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
基于JavaScript实现定时跳转到指定页面
Jan 01 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
微信端开发--登录小程序步骤
Jan 11 Javascript
JavaScript门面模式详解
Oct 19 Javascript
jQuery UI实现动画效果代码分享
Aug 19 jQuery
vue安装遇到的5个报错及解决方法
Jun 12 Javascript
vue实现图片裁剪后上传
Dec 16 Vue.js
了解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新手入门学习方法
2011/05/08 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
PHP中的类型约束介绍
2015/05/11 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
node.js的事件机制
2017/02/08 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
原生JavaScript实现轮播图
2021/01/10 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Python实现新浪博客备份的方法
2016/04/27 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
python版简单工厂模式
2017/10/16 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
利用Python计算KS的实例详解
2020/03/03 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
《彩色世界》教学反思
2014/04/12 职场文书
干部考察材料范文
2014/12/24 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
教师岗位说明书
2015/09/30 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang