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 相关文章推荐
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
JQuery对表格进行操作的常用技巧总结
Apr 23 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
浅析bootstrap原理及优缺点
Mar 19 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
vue全局使用axios的操作
Sep 08 Javascript
AudioContext 实现音频可视化(web技术分享)
Feb 24 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程序
2012/02/04 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
一套.net面试题及答案
2016/11/02 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
行政内勤岗位职责
2014/04/07 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
导游词之杭州西湖
2019/09/19 职场文书
Python Pandas 删除列操作
2022/03/16 Python
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby