最近遇到一个问题,就是获取表单中的日期往后台通过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. 整理windows相关软件的环境变量

    java: JAVA_HOME    [安装java的home目录] PATH              [在最后添加] ;%JAVA_HOME%\bin; CLASSPATH    [文本框的起始位 ...

  2. Bluefish Editor - 蓝鱼编辑器 for Web Designer

    Bluefish is a GTK+ HTML editor for the experienced web designer. Its features include nice wizards f ...

  3. Controller总结

    下图显示了组建之间的基本控制流程 1.1控制器工厂.动作调用器 控制器工厂负责创建对请求进行服务的控制器实例 动作调用其负责查找并调用控制器类中的动作方法. 1.2自定义控制器工厂 namespace ...

  4. Vue 菜单栏点击实现高亮显示

    步骤: 遍历对象(goods)获取菜单栏每一项的对象(item)和下标(index) 添加点击事件toggle(),传入下标参数:@click="fn1();fn2()" 动态切换 ...

  5. Jquery 过滤器(first,last,not,even,odd)的使用和区别

    Jquery 过滤器主要有first,last,not,even,odd等等,它们分别表示: 代码如下: $(function(){ $("#menu li:first").cli ...

  6. 【Django】遇到的问题

    目前的Django版本是Django version 2.0.4 Python使用的版本是Python 3.6.4 以下会将遇到的问题和各种报错信息记录 报错信息:NameError: name 'u ...

  7. jQuery优化性能的十种方法

    1,总是从ID选择器开始继承 例如: <div id="content"> <form method="post" action=" ...

  8. 对于 wepy 不是内部或外部命令 -- 的解决办法

    闲来没事继续研究自己之前一直未解决的问题,  就是自己笔记本安装wepy-cli,一直提示"wepy 不是内部或外部命令". 因为公司里面用的是这个框架, 想着自己在家没事的时候去 ...

  9. python 递归算阶乘 (转载)

    Python 递归函数 递归函数在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 ...

  10. sudo日志审计

    一般企业生产环境都会用跳板机把操作日志记录下来,不过有些公司内部的测试机可以用本机的sudo日志审计功能将执行的sudo命令保存日志. 为什么要使用sudo审计,因为可以通过sudo授权给普通用户执行 ...