javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?

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

 

< 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值