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 相关文章推荐
运算符&&的三个不同层次
Apr 07 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
Aug 26 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 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通过加锁实现并发情况下抢码功能
2016/08/10 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
javascript实现表单验证
2016/01/29 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
webpack4简单入门实例
2018/09/06 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
经典演讲稿范文
2013/12/30 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
户外活动总结
2015/02/04 职场文书
考试没考好检讨书
2015/05/06 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
党章学习心得体会2016
2016/01/14 职场文书
《法国号》教学反思
2016/02/22 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL