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

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

 

《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》
<
script. type
=

text/javascript

>

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

var
 sDate1 
=
 

2008/04/02

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

var
 sDate2 
=
 

2005/03/01

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

var
 oDate1 
=
 
new
 Date(sDate1);
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》 

var
 oDate2 
=
 
new
 Date(sDate2);
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》 

if
 (oDate1 
>
 oDate2)
//
输出 2008/04/02 大于 2005/03/01

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

 

{
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》  document.write(sDate1 
+  大于  + sDate2);
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》 }


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

else

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


{
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》  document.write(sDate1 
+  小于(等于)  + sDate2);
《javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?》 }


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


<br/>

 
+
 
new
 Date(

2000/01/02

));
//
输出Sun Jan 2 00:00:00 UTC+0800 2000

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

 document.write(

<br/>

 
+
 Date(

2000/01/02

));
//
输出Wed Dec 05 10:18:33 2007

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

 document.write(

<br/>

 
+
 
new
 Date(

2000-01-02

));
//
输出NaN

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

 document.write(

<br/>

 
+
 Date(

2000-01-02

));
//
输出Wed Dec 05 10:18:33 2007

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

</
script
>

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

结论:
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

    原文作者:菩提树下的杨过
    原文地址: https://www.cnblogs.com/yjmyzz/archive/2007/12/05/983265.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞