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 相关文章推荐
浅析JavaScript Array和string的转换(推荐)
May 20 Javascript
jQuery实现边框动态效果的实例代码
Sep 23 Javascript
快速解决js中window.location.href不工作的问题
Nov 02 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 Javascript
深入浅析Vue不同场景下组件间的数据交流
Aug 15 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
node中的密码安全(加密)
Sep 17 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
JS数组的常用方法整理
Mar 31 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新手上路(十)
2006/10/09 PHP
dedecms中使用php语句指南
2014/11/13 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
Python文件读取的3种方法及路径转义
2015/06/21 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
python实现感知机模型的示例
2020/09/30 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
五一服装活动方案
2014/01/11 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
食品安全责任书
2014/04/15 职场文书
联片教研活动总结
2014/07/01 职场文书
企业百日安全活动总结
2015/05/07 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python