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

时间: 2024-11-29 04:32:39

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

java和javascript中过滤掉img形式的字符串不显示图片的方法_java

本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉<img></img>和<img />形式的字符串 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

js中如何将ajax获取的字符串转换为对象?

问题描述 js中如何将ajax获取的字符串转换为对象? alert(data)里的数据是["rescode":"2"] 怎样将这个data 转换为对象? 用eval()后 var datares = eval(data); 还是没法得到 datares.rescode 解决方案 你的数据结构有问题,json不是json,数组不是数组.. ["rescode":"2"]要改为{"rescode":"

flex4 日期类型字符串转日期类型(string转Date)(转)

mysql数据库中存储的日期类型通过PHP返回到flex端为字符串类型,这样在flex中进行处理时就必须要将字符串转化为Date类型.如果仅仅是 "年/月/日" 的组合,而没有涉及到"时/分/秒"那么直接使用DateField的静态方法stringToDate()就可以实现,方法如下:        var strToday:String = "2011-3-12";         var dateToday:Date = DateField.

请教一个javascript将字符串转换为日期的问题

问题描述 比如我有字符串"2011-08-30 12:36:27"这个字符串,在javascript中怎么转换为日期,没有时分秒能实现,有时分秒的时候怎么处理? 问题补充:myali88 写道 解决方案 如果不利于其他js库的话,你可以自己解析上面的文本"2011-08-30 12:36:27",也很简单,先用空格分隔成两部分,前一部分再以"-"分隔,这样得到年月日,后一部分以":"分隔,这样得到时分秒,最后利用new Dat

JavaScript中错误正确处理方式,你用对了吗?

JavaScript的事件驱动范式增添了丰富的语言,也是让使用JavaScript编程变得更加多样化.如果将浏览器设想为JavaScript的事件驱动工具,那么当错误发生时,某个事件就会被抛出.理论上可以认为这些发生的错误只是JavaScript中的简单事件. 本文将会讨论客户端JavaScript中的错误处理.主要介绍JavaScript中的易犯错误.错误处理.异步代码编写等内容. 下面就让我们一起看看如何正确处理JavaScript中的错误. Demo演示 本文中使用的demo可以在GitH

JavaScript进行进制转换如何将字符串转换为十进制?

  JS 是一个很神奇的语言,内制的的很多函数可以帮我们进行数(进)制转换; JS中可以直接使用16进制; var a = 0xff; //255 将任意进制字符串转换为十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制; 代码如下: parseInt("11", 2); // 3 2进制转10进制 parseInt("77", 8); // 63 8进制转10进制 parseInt("af", 16); //175

MVC中如何把随机产生的字符串转换为图片

Insus.NET在这篇中<在ASP.NET MVC应用程序中随机获取一个字符串>http://www.cnblogs.com/insus/p/3619224.html,只是产生一个随机字符串,那我们要怎样实现产生出来是一张图片吧? 关没有关系,Insus.NET教会大家实现它. 如果你站点还是应用程序,还是ASP.NET的话,非MVC,可以参考下面两个链接: <实现字符串转换为图片>http://www.cnblogs.com/insus/archive/2009/03/08/1

javascript中加载并解析XML字符串/xml文件

首先,我们需要加载这个xml文件,js中加载xml文件,是通过XMLDOM来进行的.  代码如下 复制代码 <?xml version="1.0" encoding="utf-8" ?> <DongFang>   <Company>     <cNname>1</cNname>     <cIP>1</cIP>   </Company>   <Company>

javascript中存在几种对URL字符串进行编码的方法

escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字).比如,空格符对应的编码是%20. 不会被此方法编码的字符: @ * / + encodeURI() 方法: 把URI字符串采用UTF-8编码格式转化成escape格式的字符串. 不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ' encodeURIC