【问题标题】:JS: Safari new Date().getTime() gives different results from ChromeJS:Safari new Date().getTime() 给出了与 Chrome 不同的结果
【发布时间】:2023-04-08 09:28:01
【问题描述】:

我在做:

new Date().getTime();

Chrome 和 Safari 的结果不同。

如何让它发挥作用?

另外,我想摆脱这个:

var n = new Date();
      var nYear = n.getFullYear();
      var nMonth = n.getMonth()+1;
      if (nMonth<10)
        nMonth = "0" + nMonth;
      var nDate = n.getDate();
      if (nDate<10)
        nDate = "0" + nDate;
      var date = nYear + "-" + nMonth + "-" + nDate;
      var nHours = n.getHours();
      if (nHours<10)
        nHours = "0" + nHours;
      var nMinutes = n.getMinutes();
      if (nMinutes<10)
        nMinutes = "0" + nMinutes;
      var startHour = nHours + ":" + nMinutes;

然后把它变成这样:

$date = date("Y-m-d");
$startHour = date("H:i");

【问题讨论】:

标签: javascript google-chrome safari


【解决方案1】:

Safari 将处理日期对象,这与其他浏览器有所不同。当我遇到问题时,我尝试了下面附加的代码中的类似操作,并且效果很好!

var dateSplit = data.event.start.date.split("-");
var date_instance = new Date(dateSplit[0], parseInt(dateSplit[1], 10) - 1, dateSplit[2]);

//where data.event.start.date  will be from a JSON like "2017-12-05"

参考:Invalid date in safariSafari Javascript Date() NaN Issue (yyyy-MM-dd HH:mm:ss)

谢谢!

【讨论】:

    【解决方案2】:

    在这个旧帖子中是解决方案 -> Invalid date in safari

    看了datejs documentation之后,使用它,你的问题应该 使用如下代码解决:

    var myDate1 = Date.parseExact("29-11-2010", "dd-MM-yyyy");
    var myDate2 = Date.parseExact("11-29-2010", "MM-dd-yyyy");
    var myDate3 = Date.parseExact("2010-11-29", "yyyy-MM-dd");
    var myDate4 = Date.parseExact("2010-29-11", "yyyy-dd-MM");
    

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 1970-01-01
      • 2017-04-01
      • 2016-01-12
      • 2011-06-02
      • 2010-09-26
      • 2022-01-25
      • 2012-02-05
      相关资源
      最近更新 更多