最近遇到一个问题,就是获取表单中的日期往后台通过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错误!

js字符串日期yyyy-MM-dd转化为date示例代码的更多相关文章

  1. JS 2019-12-03T15:53:23.000+08:00 转化为 YYYY MM DD

    js时间格式转化 2019-12-03T15:53:23.000+08:00 转化为 YYYY MM DD var dateee = new Date(createTime).toJSON();var ...

  2. 让用户输入一个日期字符串,将其转换成日期格式, 格式是(yyyy/MM/dd,yyyyMMdd,yyyy-MM-dd)中的一种, 任何一种转换成功都可以; 如果所有的都无法转换,输出日期格式非法。

    第三种方法 while(true) {             Date d;        System.out.println("正在进行第一次匹配,请稍后~—~");     ...

  3. Excel日期格式单元格写成yyyy.MM.dd格式将无法读取到DataTable

    最近在改公司的订单系统,遇到了一个奇怪的问题.C#程序需要从Excel文件中将数据全部读取到DataTable,其中Excel文件的第一列是日期格式yyyy/MM/dd,而这一列中大部分的单元格都是按 ...

  4. Oracle中把一个DateTime的字符串转化成date类型。to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'),

    Oracle中把一个DateTime或者该形态字符串转化成date类型. to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'), 或者: sele ...

  5. C# 时间格式 yyyy/mm/dd

    今天遇到个问题在C#中将日期格式设置为yyyy/MM/dd,我是这样写的: DateTime.Now.ToString("yyyy/MM/dd"); 可是获取到的日期还是显示yyy ...

  6. DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16(转)

    今天我在使用 DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16 而不是我想要的 2006/03/16,都快把我郁闷的不行了 ...

  7. 从客户端(ASPxFormLayout1$txtRule="<YYYY><MM><DD><XXXX>")中检测到有潜在危险的 Request.Form 值

    在有文本框的值属于这种时<YYYY><MM><DD><XXXX>,会报这个错 在webconfig中加入 <httpRuntime request ...

  8. 这里有个坑---js日期格式yyyy-MM-dd与yyyy/MM/dd

    这里有个坑,---------每一个遇到的坑总结后都是一比财富. 我们写脚本的时候,一般定义一个日期格式会使用“2015-12-21”和“2015/12/21”两种数据格式,由于各取所需日期格式并没有 ...

  9. js 时间YYYY-MM-DD转换为YYYY/MM/DD 自定义函数格式

    <script type="text/javascript">         window.onload = function () {             va ...

随机推荐

  1. 利用docker构造并运行一个Redis容器

    1.首先我们来编写一个基本的Dockerfile 在任意一个目录下 $ vi Dockerfile 内容填写如下: FROM ubuntu:14.04RUN apt-get updateRUN apt ...

  2. JQuery (总结)

    延迟触发事件 Ajax异步请求数据 Jquery事件: Focus获得焦点 blur失去焦点 Change内容在变化的时候 Click点击事件 ---------------------------- ...

  3. iOS开发者账号证书配置及相关工作

    申请到开发者账号,肯定要先配置一下才可以使用,这主要是iOS证书及配置文件: 以下这篇文章写得比较全面,故不再累赘,需要的同学可以看一下: iOS开发证书与配置文件的使用

  4. 聊聊 TCP 中的 KeepAlive 机制

    KeepAlive并不是TCP协议规范的一部分,但在几乎所有的TCP/IP协议栈(不管是Linux还是Windows)中,都实现了KeepAlive功能 RFC1122#TCP Keep-Alives ...

  5. ZBrush中如何做不同图案的遮罩

    ZBrush®软件中不仅可以创建矩形遮罩还可以创建有图案的遮罩,且是非常简单有效的,那么究竟怎样做出神奇的效果,本文将为您详细讲解. 有关反转遮罩.清除遮罩的详细内容,请点击:ZBrush中如何反选遮 ...

  6. Kattis - How Many Digits?

    How Many Digits? Often times it is sufficient to know the rough size of a number, rather than its ex ...

  7. BZOJ 3910 火车 倍增LCA

    本题并不需要并查集,每次查询一次最近公共祖先,并倍增求出需要被新标记的路径. 这样保证时间复杂度是 O(nlogn)O(nlogn)O(nlogn) 的. Code: #include<cstd ...

  8. iOS开发——自动填充短信验证码

    苹果在iOS 12,改进了一个很人性化的小细节.在做短信验证码功能的时候,自动获取短信中的验证码,然后点击填充即可.不用再向之前那样麻烦,自己看到弹出的短信信息后,死记硬背,再一个个敲上去,害怕背错了 ...

  9. 使用ajax实现搜索功能

      最近要做一个搜索功能,网上搜了一圈,终于做出来了,很简单的一个,这里分享我的方法,希望对大家有用,不足之处还请指教. 这里使用ajax提交数据,配合jquery将数据显示出来. 用jq的keyup ...

  10. ECharts树图节点过多时取消缩放,调整容器高度自适应内容变化

    问题现象 使用ECharts树图,在数据维度大,节点过多时,所看到的内容会重叠交错,无法查看. 原因 在给定ECharts树图容器尺寸后,无论数据多么庞大或者稀少,数据始终会尝试在给定容器内撑满.全部 ...