相关文章推荐
刚毅的红金鱼  ·  CAST and CONVERT ...·  1 月前    · 
犯傻的黄豆  ·  Branches API | GitLab ...·  1 月前    · 
热心肠的冲锋衣  ·  Bad Suabia ...·  1 年前    · 
一身肌肉的山楂  ·  注解 ...·  2 年前    · 
Date(日期)型字符串,要想正确的转换为Date(日期)对象,必须用new Date(str)方式,直接用Date(str)强制转换将得到错误结果,另外转换时Date字符串的格式为"年/月/日"(也许还有其它写法,这里只测试了yyyy/mm/dd确实是可行的),而另一种很常见的"年-月-日"的表示方式,转换后将得到错误结果

因近日一个项目中要在客户端判断用户输入的日期字符串的大小,所以对日期字符串转日期对象研究了一下,测试代码如下:

< script. type = " text/javascript " >
var sDate1 = " 2008/04/02 " ;
var sDate2 = " 2005/03/01 " ;

var oDate1 = new Date(sDate1);
var oDate2 = new Date(sDate2);

if (oDate1 > oDate2) // 输出 2008/04/02 大于 2005/03/01
{
document.write(sDate1
+ " 大于 " + sDate2);
}

else
{
document.write(sDate1
+ " 小于(等于) " + sDate2);
}


document.write(
" <br/> " + new Date( " 2000/01/02 " )); // 输出Sun Jan 2 00:00:00 UTC+0800 2000
document.write( " <br/> " + Date( " 2000/01/02 " )); // 输出Wed Dec 05 10:18:33 2007
document.write( " <br/> " + new Date( " 2000-01-02 " )); // 输出NaN
document.write( " <br/> " + Date( " 2000-01-02 " )); // 输出Wed Dec 05 10:18:33 2007
</ script >

结论:
Date(日期)型字符串,要想正确的转换为Date(日期)对象,必须用new Date(str)方式,直接用Date(str)强制转换将得到错误结果,另外转换时Date字符串的格式为"年/月/日"(也许还有其它写法,这里只测试了 yyyy/mm/dd确实是可行 的),而另一种很常见的"年-月-日"的表示方式,转换后将得到错误结果

另外,要计算二个日期的差值,比如 相差多少天 ,可以用

date2.getTime()/(1000*60*60*24) - date1.getTime()/(1000*60*60*24)

如果要给某个日期 加几天 ,可以参考下面的代码:

var pickupDate = new Date('2010/02/01');
var newDate = new Date();
newDate. setTime (pickupDate. getTime ()+( 3 *24*60*60*1000)); //给pickupDate加了3天,然后赋值给newDate

作者: 菩提树下的杨过
出处: http://yjmyzz.cnblogs.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。