Javascript日期格式在Firefox中的不同位置显示不同

Javascript日期格式在Firefox中的不同位置显示不同,javascript,date,firefox,timezone-offset,Javascript,Date,Firefox,Timezone Offset,我有一个javascript代码,它构造了一个HTML页面。 该页有一个带有日期列的表。所需的日期格式为mm/dd/yyyy hh:mi:ss AM 在Javascript中,我从下面的代码生成这种格式 预计产量为2019年7月6日下午6:00:00 在我所在的位置,当我在位于印度的机器上运行javascript代码时,我得到了预期的结果。 但当客户在美国的系统上运行它时,他会及时看到一些补偿 它看起来像下面提到的Firefox 2019年6月6日下午2:00:00 04:00 这可能是什么原因

我有一个javascript代码,它构造了一个HTML页面。 该页有一个带有日期列的表。所需的日期格式为mm/dd/yyyy hh:mi:ss AM

在Javascript中,我从下面的代码生成这种格式

预计产量为2019年7月6日下午6:00:00

在我所在的位置,当我在位于印度的机器上运行javascript代码时,我得到了预期的结果。 但当客户在美国的系统上运行它时,他会及时看到一些补偿

它看起来像下面提到的Firefox

2019年6月6日下午2:00:00 04:00

这可能是什么原因?我该怎么解决呢

'<span>"06-06-2019 1:00:00 CDT PM".split('-')[1]+'/'+"06-06-2019 1:00:00 CDT PM".split('-')[0]+'/'+"06-06-2019 1:00:00 CDT PM".substr(6, 13).trim()+' '+"06-06-2019 1:00:00 CDT PM".substr(23)</span>'
“06-06-2019 1:00:00 CDT PM”。拆分(“-”)[1]+“/”+“06-06-2019 1:00:00 CDT PM”。拆分(“-”)[0]+“/”+“06-06-2019 1:00:00 CDT PM”。substr(6,13)。trim()+“+”06-06-2019 1:00 CDT PM“。substr(23)“

简单的答案是时区差异。每个人在客户端都有自己的浏览器和Javascript,所以Javascript的本质是显而易见的,默认情况下它会显示本地日期时间

您只需设置一个时区偏移值即可设置该值

Date.prototype.getUTCLocalDate = function () {
    var target = new Date(this.valueOf());
    var offset = target.getTimezoneOffset();
    var year = target.getUTCFullYear();
    var month = target.getUTCMonth();
    var date = target.getUTCDate();
    var hour = target.getUTCHours();
    var minutes = target.getUTCMinutes();
    var seconds = target.getUTCSeconds();
    return new Date(Date.UTC(year , month , date , hour , minutes + offset, seconds ));
  };

或者,您可以通过rest查询获得服务器时区偏移量,并创建自己的偏移量以显示所有位置的唯一时间。

简单的答案是时区差异。每个人在客户端都有自己的浏览器和Javascript,所以Javascript的本质是显而易见的,默认情况下它会显示本地日期时间

您只需设置一个时区偏移值即可设置该值

Date.prototype.getUTCLocalDate = function () {
    var target = new Date(this.valueOf());
    var offset = target.getTimezoneOffset();
    var year = target.getUTCFullYear();
    var month = target.getUTCMonth();
    var date = target.getUTCDate();
    var hour = target.getUTCHours();
    var minutes = target.getUTCMinutes();
    var seconds = target.getUTCSeconds();
    return new Date(Date.UTC(year , month , date , hour , minutes + offset, seconds ));
  };

或者,您可以通过进行rest查询来获取服务器时区偏移量,并创建自己的偏移量以在所有位置显示唯一的时间。

它以用户期望的格式显示,具体取决于位置。如果您确实希望进行日期格式化和管理偏移量,使用此命令:@Barmar用户希望它是2019年7月6日下午6:00:00格式,没有任何偏移显示正在格式化日期的代码。您显示的代码有一个硬编码的日期,它无法生成您所说的结果。@Barmar我正在对源代码进行ajax调用,以在json响应中获取该日期,该响应稍后将使用parseJSON进行解析。然后,我会对变量做一个简单的赋值。var solutionImpDate=json[i]['solutionImpDate'];并使用此变量,如我的硬编码日期值中所述。此变量以用户期望的格式显示,具体取决于位置。如果确实要进行日期格式设置和管理偏移,请使用此命令:@Barmar用户期望它为2019年7月6日下午6:00时格式,不带任何偏移显示正在格式化日期的代码。您显示的代码有一个硬编码的日期,它无法生成您所说的结果。@Barmar我正在对源代码进行ajax调用,以在json响应中获取该日期,该响应稍后将使用parseJSON进行解析。然后,我会对变量做一个简单的赋值。var solutionImpDate=json[i]['solutionImpDate'];使用我的硬编码日期值中提到的这个变量如果我从你上面提到的代码中获取日期,它将如何删除我在浏览器中看到的偏移量。正如你所见,我得到2019年6月6日下午2:00:00 04:00,这是2小时,但我也有一个偏移量04:00。浏览器会自动知道我使用的是UTC时间吗?如果我从您上面提到的代码中获取日期,它将如何删除我在浏览器中看到的偏移量。正如你所见,我得到2019年6月6日下午2:00:00 04:00,这是2小时,但我也有一个偏移量04:00。浏览器是否会自动知道我正在使用UTC时间?