js字符串日期yyyy-MM-dd转化为date示例代码


Posted in Javascript onMarch 06, 2014

最近遇到一个问题,就是获取表单中的日期往后台通过json方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN

找了些资料,发现是由于Date.parse()函数对日期格式有要求:详细参考 Date.parse函数

对于js操作日期:

创建一个日期对象:

var objDate=new Date([arguments list]);

参数形式有以下5种:

view plainnew 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 相关文章推荐
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
JavaScript设计模式之抽象工厂模式介绍
Dec 28 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 Javascript
更改BootStrap popover的默认样式及popover简单用法
Sep 13 Javascript
element ui table 增加筛选的方法示例
Nov 02 Javascript
Vuex 使用 v-model 配合 state的方法
Nov 13 Javascript
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 Javascript
浅谈react-router@4.0 使用方法和源码分析
Jun 04 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
JS实现排行榜文字向上滚动轮播效果
Nov 26 Javascript
JavaScript 实现页面滚动动画
Apr 24 Javascript
浅析JS中document对象的一些重要属性
Mar 06 #Javascript
浅析jquery的js图表组件highcharts
Mar 06 #Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 #Javascript
javascript简单实现命名空间效果
Mar 06 #Javascript
深入剖析JavaScript中的枚举功能
Mar 06 #Javascript
javascript模拟枚举的简单实例
Mar 06 #Javascript
js模拟C#中List的简单实例
Mar 06 #Javascript
You might like
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
wxPython实现文本框基础组件
2019/11/18 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
Python过滤序列元素的方法
2020/07/31 Python
animation和transition的区别
2020/10/12 HTML / CSS
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
辩论赛主持词
2014/03/18 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
软件测试专业推荐信
2014/09/18 职场文书
科学发展观标语
2014/10/08 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python