博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript中Date的一些细节
阅读量:7012 次
发布时间:2019-06-28

本文共 1320 字,大约阅读时间需要 4 分钟。

对于开发人员来说,Date有时候或许会很重要,我们可以通过new Date()来创建一个日期对象。例如:

var start = new Date(), //获取当前时间    today = new Date(2013,6,6), //2013-7-6    tommorow = new Date('2013-7-7'); //2013-7-7
 

一般来说,上面的代码应该是很常见,也没什么特殊的需要注意的地方,唯一一点就是:

new Date(2013,6,6);   //参数中的第二个,也就是月份需要加1new Date('2013-7-6'); //参数中的月份不需要加1
 

有时候,我们或许想知道一个月第一天的前面一天是多少号,比如我想知道2013年3月1日前面的那一天是多少号,这样的话,或许会去写一些判断之类的语句,但是这个我们可以更轻松的用Date来计算:

var pre = new Date(2013,2,0);

上面的结果是2013年2月28日,我们不需要额外的写其他代码来确定。当然,我们也可以先创建一个时间,然后设置他的日期,比如:

var pre = new Date(2013,2,1);pre.toLocaleString();    //"3/1/2013 12:00:00 AM"pre.setDate(pre.getDate() - 1);pre.toLocaleString();    //"2/28/2013 12:00:00 AM"
 

上面的代码可以实现我们需要的功能,获取正确的结果,只不过在我看来还不是最好的方法。

 

当第三个参数我们传递0的时候,表示上一个月的最后一天,也就是这个月第一天的前一天,那么传递的为负数,或者超过了这个月的最大天数会是什么情况呢?先看看下面的代码:

var d0 = new Date(2013,6,0),  //2013-6-30    d1 = new Date(2013,6,-1), //2013-6-29    d2 = new Date(2013,6,-2), //2013-6-28    d3 = new Date(2013,6,32), //2013-8-1    d4 = new Date(2013,6,33); //2013-8-2
 

可见,如果超出正常范围,都会往前后顺延。

此外,如果我们不确定这一个月到底有多少天,我们只想在这个月末尾的基础上加几天,我们就得通过设置时间来实现了:

var pre = new Date(2013,6,6);pre.toLocaleString();    //"7/6/2013 12:00:00 AM"pre.setDate(pre.getDate() + 30);pre.toLocaleString();    //"8/5/2013 12:00:00 AM"
 

总结:日期在开发中还是很常见的,以前都没有注意到上面的这一些细节的东西,如果了解了这些细节,或许能让程序更精简,更简单。

 

转自;

转载于:https://www.cnblogs.com/xiaolinxi/p/3289066.html

你可能感兴趣的文章
TCP/IP会话与状态
查看>>
sed删除中文字符
查看>>
MongoDB基本命令用
查看>>
react技术分享(归纳总结)
查看>>
我的友情链接
查看>>
python学习心得-第一天-作业
查看>>
Centos6 iptables防火墙设置
查看>>
RHEL/CentOS/Ubuntu 进入单用户模式
查看>>
Linux - 命令行 预览(navigation) 详解
查看>>
清除Windows Server Backup 备份副本
查看>>
MySQL数据库性能优化之一(缓存参数优化)
查看>>
常见Sqlite管理工具
查看>>
Web工程加入日志组件:slf4j+logback
查看>>
MySQL中创建、删除表和库,添加、删除记录
查看>>
cacti snmp error
查看>>
常用正则表达式
查看>>
用Python玩微信跳一跳黑科技详细使用教程
查看>>
Dart 服务端开发 shelf_bind 包
查看>>
2.18 特殊权限set_uid
查看>>
将zabbix 监控图以图片格式发送邮件到管理员邮箱
查看>>