在获取表单中的日期往后台通过json方式传时,遇到date.parse(str)函数在ff下报错: nan
这是由于date.parse()函数对日期格式有要求:详细参考 date.parse函数
对于js操作日期:
创建一个日期对象: 
 
参数形式有以下5种: 
 
说明: 
month:用英文表示月份名称,从january到december 
mth:用整数表示月份,从0(1月)到11(12月) 
content
dd:表示一个月中的第几天,从1到31 
yyyy:四位数表示的年份 
hh:小时数,从0(午夜)到23(晚11点) 
mm:分钟数,从0到59的整数 
ss:秒数,从0到59的整数 
ms:毫秒数,为大于等于0的整数,表示的是需要创建的时间和gmt时间1970年1月1日之间相差的毫秒数。
我发现了: 
javascript中日期的构造还可以支持 new date("yyyy/mm/dd"); 其中:mm是整数表示月份从0(1月)到11(12月),这样再利用正则表达式就很方便地能够转换字符串日期了。
测试代码: 
 
<mce:script type="text/javascript"><!-- 
document.write("<br/>" + new date("february 3,2009")); 
document.write("<br/>" + new date("february 3,2009 10:52:03")); 
document.write("<br/>"); 
document.write("<br/>" + new date(2009,1,3)); 
document.write("<br/>" + new date(2009,1,3,10,52,03)); 
document.write("<br/>"); 
document.write("<br/>" + new date(date.parse("february 3,2009"))); 
document.write("<br/>" + new date(date.parse("february 3,2009 10:52:03"))); 
document.write("<br/>" + new date(date.parse(2009,1,3))); //output: nan 
document.write("<br/>" + new date(date.parse(2009,1,3,10,52,03))); //output: nan 
document.write("<br/>" + new date(date.parse("2009/02/03"))); 
document.write("<br/>"); 
document.write("<br/>" + new date("2009/02/03")); 
document.write("<br/>" + new date("2009/02/03 11:12:13")); 
document.write("<br/>" + new date("2009-02-03")); //output: nan
// --></mce:script>
输出结果: 
tue feb 3 00:00:00 utc+0800 2009 
tue feb 3 10:52:03 utc+0800 2009
tue feb 3 00:00:00 utc+0800 2009 
tue feb 3 10:52:03 utc+0800 2009
tue feb 3 00:00:00 utc+0800 2009 
tue feb 3 10:52:03 utc+0800 2009 
nan 
nan 
tue feb 3 00:00:00 utc+0800 2009
tue feb 3 00:00:00 utc+0800 2009 
tue feb 3 11:12:13 utc+0800 2009 
nan 
------------------- 
例子:
 
window.onload=function(){ 
var dependedval="2005-3-4"; 
//根据日期字符串转换成日期 
var regex = new regexp("-","gi"); 
dependedval=dependedval.replace(regex,"/"); 
//dependedval=dependedval.replace("-","/");//这样不行 
alert(dependedval) 
//parse 需要 2005/3/4 这种格式 
var milliseconds=date.parse(dependedval); 
alert(milliseconds) 
var dependeddate=new date(); 
dependeddate.settime(milliseconds);
var now = new date(); 
//注意括号,优先级问题,无奈 
alert("相隔年数:"+(now.getfullyear() - dependeddate.getfullyear())); 
}
其实日期在浏览器和服务器之间传输都要通过毫秒值来传,否则就会报错 400错误!
javascript日期格式化简单例子
JavaScript自定义日期格式化函数用法
javascript实现的Date日期格式化函数
javascript实现(Date format)日期格式化的三个例子
js 日期格式化的例子