考虑运行相同的javascript应用程序:
Intl.DateTimeFormat().format(new Date) // "05/01/2018"
Intl.DateTimeFormat().format(new Date) // "2018-1-5"
我们有一个项目列表,每个项目都有一个字段:created date
基本上以区域设置格式显示日期:
const items = [
{
title: 'I am the Title',
createdDate: new Date(),
id: 'foobazID'
}
];
const render = item => (`
<table class="table table-striped" id="${item.id}">
<tr>
<th>ID:</th><td>${item.id}</td>
</tr>
<tr>
<th>Title:</th><td>${item.title}</td>
</tr>
<tr>
<th>Created At:</th><td>${item.createdDate.toLocaleDateString()}</td>
</tr>
</table>
`);
document
.getElementById('view')
.innerHTML = items.reduce((res, item) => res.concat(render(item)), '')
;
&#13;
#view {
margin: 10px;
padding: 10px;
border: 1px solid #dee2e6;
}
&#13;
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css">
<section id="view">
</section>
&#13;
现在,考虑到在同一台机器上运行的两个应用程序,我们会获得两种不同的日期时间格式:
我们可以做些什么来获得相同的格式输出?
答案 0 :(得分:1)
您可能首先要在Electron和Chrome各自的DevTools控制台中运行以下语句,以发现默认日期时间格式的任何差异:
Intl.DateTimeFormat().resolvedOptions()
基于某些浏览器设置,locale
属性可能具有不同的值("en"
,"en-UK"
,"en-US"
等)...
然后,明确地将适当的locale
作为参数添加到Intl.DateTimeFormat,"en"
,例如:
Intl.DateTimeFormat("en").format(new Date)