JavaScript中Date的一些细节
对于开发人员来说,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); //参数中的第二个,也就是月份需要加1
new 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"
总结:日期在开发中还是很常见的,以前都没有注意到上面的这一些细节的东西,如果了解了这些细节,或许能让程序更精简,更简单。
转自;http://www.sanjh.cn/javascript-date-xi-jie.html
JavaScript中Date的一些细节的更多相关文章
- javascript中Date对象的应用——简易日历的实现
× 目录 [1]效果 [2]HTML [3]CSS[4]JS 前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 ...
- javascript中Date对象的应用
前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入 ...
- Javascript中Date对象的格式化
很多语言中都带有日期的格式化函数,而Javascript中却没有提供类似的方法.之前从某位前人的帖子中发现了下面的代码,感觉非常简洁,存留备用. /** * 时间对象的格式化; */ Date.pro ...
- JavaScript中date 对象常用方法
Date 对象 Date 对象用于处理日期和时间. //创建 Date 对象的语法: var datetime = new Date();//Date 对象会自动把当前日期和时间保存为其初始值. co ...
- javascript中Date使用
<script type="text/javascript"> //返回当前日期和时间 var newDate=new Date(); ...
- JavaScript中Date(日期对象),Math对象--学习笔记
Date对象 1.什么是Date对象? 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 语法:var Udate=new Date(); 注:初始值为当前时间(当前电脑系统 ...
- javascript中Date常用方法
一.Date的构造函数 有四种形式的Date构造函数: //1.构造函数没有参数,则返回当前日期的Date对象 var now=new Date(); //2.构造函数的参数为日期的毫秒数,返回距离1 ...
- javascript中Date对象复习
js的Date对象不怎么经常用,所以忘得差不多,复习一下 1.声明一个Date对象,默认本地当前时间 var date = new Date();//Fri Apr 28 2017 14:26:19 ...
- javascript中Date使用总结(转)
//全局函数 Date //Date 类的静态方法 Date.parse Date.UTC //Date 对象的建立方法 new Date() new Date(毫秒数) new Date(标准时间格 ...
随机推荐
- [Selenium]点击Calendar控件后,Calendar dialog很快消失
有的日历控件使用了“opacity:0”透明度加上“display:none”来控制其是否显示,使用moveToElement方法不能移动到dialog上,可以把这两个属性的值进行修改,使其可见,使用 ...
- iOS开发 UIPanGestureRecognizer手势抽象类
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@sel ...
- maven各种插件在总结
http://blog.csdn.net/taiyangdao/article/category/6377863 好文章系列课程
- sql raiseerror
raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql server 2005的帮助 ] 其语法如下: RAISERROR ( { msg_id | msg ...
- 安卓虚拟机启动失败intel haxm未安装
1:环境是android studio 在AVD中启动显示,提示当前电脑为安装HAXM emulator: ERROR: x86 emulation currently requires hardwa ...
- matlab灰度变彩色+白平衡算法实现
% matlab彩色图像分离通道并合并成处理后的彩色图像(彩色变灰度再变彩色) % 白平衡算法(灰度世界法)消除RGB受光照影响 clear all; close all; %读入原始图像 srcIm ...
- js解码
如代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- python中2进制、10进制、16进制等之间的转换
10转2: bin(8) # '0b1000' 2转10: int( 10转16: hex(15) # '0xf' 16转10: int( 2进制和16进制中间通过转10进制可以相互转换 from b ...
- java对于文件传输时---编码格式的一些设置方法
- ----转 读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够 ...
- hdu1710(Binary Tree Traversals)(二叉树遍历)
Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...