在获取表单中的日期往后台通过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 日期格式化的例子