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延迟执行实现方法(setTimeout)
Dec 30 Javascript
jQuery1.6 使用方法一
Nov 23 Javascript
JQuery for与each性能比较分析
May 14 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
JavaScript中的闭包
Feb 24 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
JavaScript多线程运行库Nexus.js详解
Dec 22 Javascript
vue微信分享到朋友圈 vue微信发送给好友
Nov 28 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
vue中使用腾讯云Im的示例
Oct 23 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如何防止用户重复提交表单
2020/12/09 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
修复IE9&safari 的sort方法
2011/10/21 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
JS实现简单tab选项卡切换
2019/10/25 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
python复制与引用用法分析
2015/04/08 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
django解决跨域请求的问题
2018/11/11 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Django框架安装方法图文详解
2019/11/04 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
违反课堂纪律检讨书
2014/01/19 职场文书
全国道德模范事迹
2014/02/01 职场文书
促销活动总结怎么写
2014/06/25 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
单位租房协议书样本
2014/10/30 职场文书
经营场所使用证明
2015/06/19 职场文书
网吧员工管理制度
2015/08/05 职场文书
详解nginx location指令
2022/01/18 Servers
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA