gpt4 book ai didi

javascript - 将日期显示为日期时间输入

转载 作者:可可西里 更新时间:2023-11-01 14:49:19 24 4
gpt4 key购买 nike

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

我想到的以相同方式显示日期的最佳方式。是用只读和无边界进行输入,但这不是最佳选择。我需要将它放在一个变量(字符串)中并能够保存它并可能发送具有相同格式的电子邮件(只是一个例子)

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

据我了解和发现

  • Date.toLocalString 基于地理位置
  • input[datetime-local] 基于系统。
  • 系统格式有点不可能得到。

我不想更改输入的日期格式/掩码(因为这不符合客户的意愿)但我会考虑将输入格式/掩码设置为与 toLocalString 相同的格式以获得相同的行为(如果可能的话)???


enter image description here

http://plnkr.co/edit/nAfgdkPrFqjk6pyBjs8K?p=preview


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

最佳答案

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

Chrome(和其他浏览器的最新版本)有一个国际化的 JavaScript API。它允许您根据当前(或任何支持的)区域设置格式化数字和日期并比较字符串。

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

var formatter = new Intl.DateTimeFormat();
console.log(formatter.format(new Date(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)));

关于javascript - 将日期显示为日期时间输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com