Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Luxon中使用特定格式将字符串格式化为Datetime_Javascript_Luxon - Fatal编程技术网

Javascript 在Luxon中使用特定格式将字符串格式化为Datetime

Javascript 在Luxon中使用特定格式将字符串格式化为Datetime,javascript,luxon,Javascript,Luxon,到现在为止,我使用了momentjs来处理时间,但我想切换到Luxon。但我对以下实现有问题 有一个文本字段,您可以在其中以区域设置时间格式输入日期时间,例如HH:mm(24小时格式)或HH:mm(12小时格式)。使用的时间格式存储在变量timeFormat中 我使用矩js的解决方案: let timeFormat = 'HH:mm' // 'hh:mm a' let textfield = document.querySelector('#input-time'); let timeStrin

到现在为止,我使用了
momentjs
来处理时间,但我想切换到
Luxon
。但我对以下实现有问题

有一个文本字段,您可以在其中以区域设置时间格式输入日期时间,例如
HH:mm
(24小时格式)或
HH:mm
(12小时格式)。使用的时间格式存储在变量
timeFormat

我使用
矩js的解决方案

let timeFormat = 'HH:mm' // 'hh:mm a'
let textfield = document.querySelector('#input-time');
let timeString = textfield.value;
let dateTime = moment(timeString, timeFormat, true);

// Check if time is valid
if(dateTime.isValid() === false){
    return;
}
使用12h格式:

  • 11:00am
    09:43pm
    有效
  • 11:00
    21:43
    无效
使用24小时格式:

  • 11:00am
    09:43pm
    无效
  • 11:00
    21:43
    有效
我如何才能获得与Luxon类似的解决方案?我最大的问题是获得一个与
矩(timeString,timeFormat,true)
类似的函数,因此使用特定格式(例如12h/24格式)将字符串格式化为日期时间。

您可以使用

从输入字符串和格式字符串创建日期时间。如果未指定区域设置,则默认为en US,而与系统的区域设置无关

例如:

const DateTime=luxon.DateTime;
常量输入=['11:00 am'、'09:43 pm'、'11:00'、'21:43'];
常量格式=['HH:mm','HH:mm a'];
常量检查时间=(时间字符串,fmt)=>
DateTime.fromFormat(timeString,fmt).isValid
对于(i=0;i