Javascript 如何将时间戳转换为字符串并防止浏览器将日期更改为本地时区?

Javascript 如何将时间戳转换为字符串并防止浏览器将日期更改为本地时区?,javascript,arrays,amcharts,amcharts4,Javascript,Arrays,Amcharts,Amcharts4,我有一个满是时间戳的数组,比如: let tAxe = [1548546272000, 1548546287000, 1548546303000, 1548546318000, 1548546333000]; 我正在尝试将每个时间戳转换为人类可读的日期。我可以阻止浏览器将此日期转换为当前时区吗?此tAxe变量在amChart4库中用于生成图形 我正在考虑一个循环,但我不确定如何准确地编写代码 for (i = 0; i < tAxe.length; i++) { // I don'

我有一个满是时间戳的数组,比如:

let tAxe = [1548546272000, 1548546287000, 1548546303000, 1548546318000, 1548546333000];
我正在尝试将每个时间戳转换为人类可读的日期。我可以阻止浏览器将此日期转换为当前时区吗?此tAxe变量在amChart4库中用于生成图形

我正在考虑一个循环,但我不确定如何准确地编写代码

for (i = 0; i < tAxe.length; i++) { 
  // I don't know how to write exactly the conversion

}
(i=0;i //我不知道如何准确地写出转换 }
您只需将
dateFormatter.utc
设置为true,amCharts将为您完成其余工作:

chart.dateFormatter.utc = true;
以下是使用您共享的时间戳的示例:

am4core.useTheme(am4themes\u动画);
var chart=am4core.create(“chartdiv”,am4charts.XYChart);
chart.dateFormatter.utc=true;
chart.data=[
{日期:1548546272000,价值:12},
{日期:1548546287000,值:15},
{日期:1548546303000,价值:13},
{日期:1548546318000,价值:17},
{日期:1548546333000,价值:14},
];
var dateAxis=chart.xAxes.push(新的am4charts.dateAxis());
var valueAxis=chart.yAxes.push(新的am4charts.valueAxis());
var series=chart.series.push(新的am4charts.LineSeries());
series.dataFields.valueY=“value”;
series.dataFields.dateX=“日期”
#chartdiv{
宽度:100%;
高度:500px;
}

您可以使用。 Windows文件时间使用1601年1月1日的纪元。JavaScript日期使用1970年1月1日。您需要相应地调整该值

由于所有JavaScript数字都是IEEE浮点数,当您开始使用如此大的值时,可能会出现舍入错误。这可以通过截断字符串而不是分割来避免

var s = "130459385299470000";
var t = +s.substring(0, s.length-4);
var e = Date.UTC(1601,0,1);
var dt = new Date(e + t);

但也阻止浏览器将此新字符串转换为当前时区
ToutString不会这样做
whatYouNeed=tAxe.map(d=>new Date(d).toutString())