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-Mozilla和IE中的一个函数直接量的问题
Jan 09 Javascript
用JQuery 实现AJAX加载XML并解析的脚本
Jul 25 Javascript
javascript 清空form表单中某种元素的值
Dec 26 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
JS实现的几个常用算法
Nov 12 Javascript
js仿拉勾网首页穿墙广告效果
Mar 08 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
修改vue+webpack run build的路径方法
Sep 01 Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 Javascript
详解JS预解析原理
Jun 16 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 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使用多个进程同时控制文件读写示例
2014/02/28 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python分布式编程实现过程解析
2019/11/08 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
如何提高JDBC的性能
2013/04/30 面试题
小学生元旦感言
2014/02/26 职场文书
入党自我鉴定
2014/03/25 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
安全教育培训心得体会
2016/01/15 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python