zoukankan      html  css  js  c++  java
  • 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

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    【SCOI2012】滑雪
    【NOI2008】假面舞会
    ※初赛知识总结※
    【FJSC2012】足球
    【中山市选2011】杀人游戏
    【SDOI2008】洞穴勘测
    【SNOI2017】炸弹
    【LGOJ1606】白银莲花池
    int类型中为什么负数比正数多了一个数?
    utf8、utf16、utf32之间的格式
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/983265.html
Copyright © 2011-2022 走看看