如何仅使用 date-fns 格式化时间

问题描述 投票:0回答:3

使用 date-fns,如何使用 date-fns 在下面的代码段中进行转换。 基本上,输入类似于“01:40:20 PM”或“1:4:2 PM”或“3:2 PM”或“03:2 PM” 预期输出将保持一致,例如 '03:02:00 PM' ,采用 hh:mm:ss A 格式。

我找不到任何允许仅使用时间进行格式化的特定方法。

使用moment js,效果如下:

 if (moment(timeString, ['h:m:s A', 'h:m A'], true).isValid()) {
    return moment(timeString, 'hh:mm:ss A').format('hh:mm:ss A');
  }
javascript date time momentjs date-fns
3个回答
0
投票

希望这将有助于将任何类似时间的字符串转换为您想要的格式。

function getTimeFormat(time) {
let ta = time.trim().split(" ");
let slots = ta[0].split(":");
while(slots.length<3) slots.push(""); // make sure we have h:m:s slots
return slots.map( n => n.padStart(2, '0')).join(":") + " " + (ta.length>1 ? ta[1].trim().toUpperCase() : "");
}
console.log(getTimeFormat('3 pm'));  
console.log(getTimeFormat('3:1 pm'));  
console.log(getTimeFormat('3:15 pm'));  


0
投票

这对我有用: “17:00:00.000”至“05:00 PM”

import { format, parse } from "date-fns";

...

const time = '17:00:00.000';

...

{format(parse(time.split(":", 2).join(":"), "HH:mm", new Date()), "hh:mm a")}

0
投票

const [selected, setSelected] = React.useState(new Date()); const [timeValue, setTimeValue] = React.useState(format(selected, 'HH:mm'));

在第二行中,format(selected, 'HH:mm') 将从 Date 中获取小时:分钟的值。

这是最简单的方法。

© www.soinside.com 2019 - 2024. All rights reserved.