Javascript 将日期显示为datetime输入

Javascript 将日期显示为datetime输入,javascript,html,google-chrome,datetime,Javascript,Html,Google Chrome,Datetime,我的问题是:chromes datetime local以我的操作系统配置的方式显示(当前为dd/mm/yyyy hh:ss)(24小时时钟)(en-US) 我想出的最好的方法就是以同样的方式显示日期。是用只读和无边框输入,但这不是最优的。我需要有一个变量(字符串)它,并能够保存它,也许发送一封电子邮件与相同的格式(只是一个例子) 最好的方法是使用Date.toLocalString()但它仍然与系统或输入格式不同 根据我的理解和发现 日期。toLocalString基于地理位置 输入[日期时

我的问题是:chromes datetime local以我的操作系统配置的方式显示(当前为dd/mm/yyyy hh:ss)(24小时时钟)(en-US)

我想出的最好的方法就是以同样的方式显示日期。是用只读和无边框输入,但这不是最优的。我需要有一个变量(字符串)它,并能够保存它,也许发送一封电子邮件与相同的格式(只是一个例子)

最好的方法是使用
Date.toLocalString()但它仍然与系统或输入格式不同

根据我的理解和发现

  • 日期。toLocalString
    基于地理位置
  • 输入[日期时间本地]
    基于系统
  • 系统格式有点难以获取
我不希望更改输入的日期格式/掩码(因为它不会遵循客户的意愿) 但我会考虑将输入格式/掩码设置为与toLocalString相同的格式,以获得相同的行为,如果这是可能的话



但是现在,当我们有了
datetime local
时,我们是否无法从输入字段中获取系统格式?

(因为这显然是一个Google Chrome问题,这在相同的上下文中回答了这个问题)

Chrome(以及其他浏览器的最新版本)具有国际化JavaScript API。 它允许您格式化数字和日期,并根据当前(或任何支持的)语言环境比较字符串

使用,您可以格式化从输入中获取的日期(
newdate(dateInputElement.valueAsNumber)
将为您提供原始日期对象)-

您可以在构造时使用选项对象配置
DateTimeFormatter
-

var formatter = new Intl.DateTimeFormat((new Intl.DateTimeFormat).resolvedOptions().locale,{year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric"});
console.log(formatter.format(new Date(dateInputElement.valueAsNumber)));

嗯,看起来很有希望。我在电脑上试了一下,效果很好。要判断它是否按预期工作有点困难。将查看它是否解决了我的问题@我的工作(它有不同的(混合)设置),如果是这样,我会将您的答案标记为已接受:)不幸的是,它没有工作。我试图在事先不知道的情况下获得与显示值相同的格式。这只是创建插值函数的一种方法,我建议将此作为blink dev和v8用户之间的联合帖子。我相信他们会有一个更明确的答案(假设有人回答…)。眨眼开发-‎ v8用户-要模拟加入的帖子,您必须加入群组并使用电子邮件发送帖子(意思是,不使用Google groups界面),并将群组的两个电子邮件地址作为收件人。
var formatter = new Intl.DateTimeFormat((new Intl.DateTimeFormat).resolvedOptions().locale,{year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric"});
console.log(formatter.format(new Date(dateInputElement.valueAsNumber)));