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动态进行图片缩略的原理及实现
Aug 13 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
Mar 05 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
jQuery实现给页面换肤的方法
May 30 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
js canvas实现QQ拨打电话特效
May 10 Javascript
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
通俗解释JavaScript正则表达式快速记忆
Aug 23 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
简单聊聊TypeScript只读修饰符
Apr 06 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判断浏览器的类型和语言的函数代码
2013/02/28 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
解析php中的escape函数
2013/06/29 PHP
解析isset与is_null的区别
2013/08/09 PHP
destoon数据库表说明汇总
2014/07/15 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
pycham查看程序执行的时间方法
2018/11/29 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
python 瀑布线指标编写实例
2020/06/03 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
如何编写python的daemon程序
2021/01/07 Python
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
物业管理专业个人的自我评价
2013/11/19 职场文书
学校交通安全责任书
2014/08/25 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
行政处罚决定书
2015/06/24 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
公司周年庆寄语
2019/06/21 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS