当前位置: 首页 > 知识库问答 >
问题:

Javascript新日期跨浏览器格式问题

甘学潞
2023-03-14

我在使用Javascript格式化日期字符串时遇到了问题。在IE上,日期格式是MM-DD-YYYY,但在Firefox上是YYYY-MM-DD。Chrome两种格式都可以使用,但当我选择其中一种格式时,另一个浏览器会给我一个无效日期警告。

以我的代码为例(适用于IE但不适用于Firefox):

  var dateSTR = "2015-09-29";
  var date  = new Date(dateSTR.replace(/(\d{4})-(\d{2})-(\d{2})/,"$2-$3-$1"));
  date.setUTCHours(date.getHours());
  date.setUTCMinutes(date.getMinutes());
  return date.toLocaleDateString(); 

https://jsfiddle.net/kmmna8c0/

共有3个答案

邓才
2023-03-14

您似乎正在尝试从预定义的字符串创建Date对象(在您的示例中:“2015-09-29”)。

您可以使用以下内容:

var dateSTR = "2015-09-29";
var dateYear = 2015;         // create this from dateSTR
var dateMonth = 8;           // create this from dateSTR (= month-1)
var dateDay = 9;             // create this from dateSTR

然后使用:

var date = new Date(dateYear, dateMonth, dateDay);

基于此处的解释: http://www.w3schools.com/jsref/jsref_obj_date.asp

柴声
2023-03-14

我只在toLocaleDateString中看到了不同之处-注意:我在欧洲,所以只有FX向我展示了我想要的东西

    var dateSTR = "2015-09-29";
    var date  = new Date(dateSTR.replace(/-/g,"/"));

    console.log("0:"+ new Date("2015/09/29"))
    console.log("1:"+date)
    date.setUTCHours(date.getHours());
    console.log("2:"+date)
    date.setUTCMinutes(date.getMinutes());
    console.log("3:"+date);
    console.log("4:"+date.toLocaleDateString()); 
丌官向荣
2023-03-14

此代码将在IE、Chrome和FireFox中返回相同的日期:

js lang-js prettyprint-override">var dateSTR = "2015-09-29";
var dateArr = dateSTR.split("-");
var theDate = new Date(dateArr[0], dateArr[1]-1, dateArr[2]);
alert(theDate);
 类似资料:
  • 问题内容: 是否有任何跨浏览器/跨平台的方法来解析Javascript中的XML文件? 问题答案: 以下内容适用于所有主要浏览器,包括IE 6: 用法示例: 现场演示:

  • 问题内容: 如何找到浏览器的Javascript引擎版本以及对ECMAScript 6的支持? 我只是想知道浏览器的版本,而不是引擎的版本。 问题答案: 特征检测 我建议您使用 功能检测, 而不要使用启发式方法检测浏览器的引擎。为此,您可以简单地 在语句中包装一些代码,或使用一些语句。 例如: 为什么功能检测比浏览器/引擎检测更好? 在大多数情况下,有多种原因可以使特征检测成为最佳选择: 您不必依

  • 我想从JavaScript对象中获取格式的日期。 从上面一行,我期待但得到 怎么解决?

  • 我正在使用jquery datepicker,我想设置最小日期和最大日期来显示日期。我需要允许用户在最小和最大范围内选择日期。和dateformat也需要根据用户区域设置。 我有2个日期字段开始日期和结束日期。 但上面的代码在另一个本地国家/地区不能正常工作....它总是选择我的系统日期格式“MM/DD/YYYY”。 所以我尝试设置日期的格式var dateFormat=“dd.mm.yyyy”;

  • 问题内容: 专业的网页设计师如何创建跨浏览器的CSS?通常是手动完成,还是像YUI针对JavaScript那样可以简化流程的工具包?我希望远离Dreamweaver之类的所见即所得编辑器。谢谢! 问题答案: 通常是手工完成的。 通常从对比赛场地应用CSS重置开始。 而且,您应该针对符合标准的CSS,然后作为对IE的最后手段,才可以使用hacks(是的,我刚刚说过)。

  • 使用Javascript,如何检测日期输入字段(输入[type=date])中日期的格式? 像Modernizr这样的工具只检测到使用HTML5日期选择器的能力(尤其适合移动设备及其UI来选择日期)。然而,我还没有找到任何解决方案来检测浏览器使用的格式。 我有一个这样的输入字段: 如果在localStorage中找到该值,则使用jQuery调用输入该值。我认为由于min和max属性的有效日期格式是

  • 本文向大家介绍javascript中日期函数new Date()的浏览器兼容性问题,包括了javascript中日期函数new Date()的浏览器兼容性问题的使用技巧和注意事项,需要的朋友参考一下 同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异。本文将基于new Date来创建Date对象来分析这个问题。 1.  问

  • 问题内容: 是否有人能在IE / Firefox上正常运行的脚本示例能够检测浏览器是否能够显示嵌入式Flash内容。我说可靠是因为我知道不可能100%的时间。 问题答案: SWFObject非常可靠。我已经使用它很长时间了。