情节.js为类型设置时区:“日期”
Plotly.js setting timezone for type:"date"
我正在制作一个图表来显示一段时间内的状态。所有数据均采用 unix 格式。我使用 javascript (new Date(data)).toUTCString
在标题中显示数据。这与用于图表的数据相同,但图表提前 1 小时运行。图像
这是我的布局配置:
layout = {
"showlegend": true,
"title": new Date(min).toUTCString() + " to " + new Date(max).toUTCString(),
"xaxis": {
"autorange": true,
"range": [
min,
max
],
"title": "Time",
"type": "date" //if I change this to scatter, I get the unix values
}
}
Plotly.newPlot('graphMain', temp, layout); //temp contains the arrays
我目前居住在奥地利 (UTC+01:00)。有人对此有想法吗?
Plotly 目前不支持时区。
如果需要将日期时间预先计算为本地时区或 UTC,则可能需要使用类似 moment.js 时区的内容。或者,如果您愿意,可以手动完成。
今天,我认为 Plotly.js 仍然不支持时区,或者至少我找不到它。这就是我解决它的方式,但是,如果你有更好的解决方案,我很高兴听到!
我想日期的原始格式是 yyyy-mm-ddTHH:MM:SSZ
,然后您使用 https://stackoverflow.com/a/74341794/11692632 中的函数更改格式,该函数获取 pc 的时区。
function fmt(date, format = 'YYYY-MM-DD hh:mm:ss') {
const pad2 = (n) => n.toString().padStart(2, '0');
//These functions get the date from the browser timezone, in my case 'Europe/Madrid'
const map = {
YYYY: date.getFullYear(),
MM: pad2(date.getMonth() + 1),
DD: pad2(date.getDate()),
hh: pad2(date.getHours()),
mm: pad2(date.getMinutes()),
ss: pad2(date.getSeconds()),
};
return Object.entries(map).reduce((prev, entry) => prev.replace(...entry), format);
}
> date = '2022-12-15T10:00:00Z'
'2022-12-15T10:00:00Z'
> newDate = new Date(date)
2022-12-15T10:00:00.000Z
> fmt(new Date(date))
'2022-12-15 11:00:00'
注意,当然,如果您使用的是 unix 时间,它也可以工作
> date = 1671100918000
1671100918000
> newDate = new Date(date)
2022-12-15T10:41:58.000Z
> newDate.toLocaleString('se-SE', { timeZone: 'Europe/Madrid' })
'2022-12-15 11:41:58'
因此,如果我的日期数组是 dates
,要将日期转换为我的时区,您应该执行以下操作:
> const tz_dates=dates.map(date=>fmt(new Date(date)))
相关文章:
- 获取用户选择的不带时区的日期
- 分析特定区域设置(而不是时区!)中的日期字符串
- moment.js在两个时区格式的日期之间存在差异
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- Javascript-将时区添加到日期倒计时中
- 使用JavaScript日期的任何时间的时区偏移量
- javascript日期时区问题
- 读取本地时区的日期的Javascript
- 时刻时区.js允许我传递时区缩写并获取转换后的日期/时间
- 转换 JSON 日期,不考虑时区
- 如何使用 JavaScript 更改日期的时区而不更改时间
- 如何将 UTC 日期时间(字符串)转换为访问者时区
- Javascript 解析 json 日期时区不匹配会导致显示错误的日期
- NetSuite RESTlet,提交日期/时区问题
- JavaScript 日期时区的奇怪行为
- yyyy-mm-ddThh:mm:ss.sssZ日期/时区格式是什么,以及如何在JavaScript中复制它
- Node.js日期时区和getMonth()
- 时间戳日期时区问题在dojo
- 使用日期时区操作
- JavaScript/NodeJS-Mongo DB获取带偏移量的日期(时区)