js字符串日期格式化为yyyy-mm-dd

发布时间:2019-11-26编辑:脚本学堂
本文介绍了js中字符串日期格式的方法,获取表单中的日期往后台通过json方式传时,遇到date.parse(str)函数在ff下报错,有此问题的朋友参考下。

在获取表单中的日期往后台通过json方式传时,遇到date.parse(str)函数在ff下报错: nan

这是由于date.parse()函数对日期格式有要求:详细参考 date.parse函数

对于js操作日期:

创建一个日期对象:
 

复制代码 代码示例:
var objdate=new date([arguments list]);

参数形式有以下5种:
 

复制代码 代码示例:
new date("month dd,yyyy hh:mm:ss");
new date("month dd,yyyy");
new date(yyyy,mth,dd,hh,mm,ss);
new date(yyyy,mth,dd);
new date(ms);

说明:
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 日期格式化的例子