Dayjs: не удается отформатировать пользовательское 24-часовое время до 12 часов

#javascript #time-format #dayjs

#javascript #формат времени #dayjs

Вопрос:

 import dayjs from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat";
dayjs.extend(customParseFormat);
  

при выполнении чего-то подобного "dayjs().format('18:00', "hh:mm A");" оно не преобразуется в 12-часовое время…. возвращает 18:00

Как мне преобразовать выходные данные с помощью dayjs, например:

  08:00 -> 08:00 AM
 18:00 -> 06:00 PM
  

Ответ №1:

Я взял принятый ответ и немного упростил его для своего варианта использования. Это практически тот же вариант использования.

Если дата не имеет значения, и вы только пытаетесь преобразовать время — тогда это должно быть все, что вам нужно.

 const globalTime = "14:00";
const twelveHourTime = dayjs('1/1/1 '   globalTime).format('hh:mm a')
// twelveHourTime = "02:00 pm"

  

Поскольку для форматирования dayjs вам нужна полная дата, но единственным выводом является время, тогда дата не имеет значения и может быть любой. Например, «1/1/1»

Ответ №2:

Для этого вы не можете просто установить ’18:00′, вы должны указать дату.

 var now = new dayjs().startOf('day')
var newDate = now.add('18','hour').add('10','minutes')
var newDatezerominutes = now.add('18','hour').add('00','minutes')
var formatted = dayjs(newDate).format('hh:mm a')
var formattedzero = dayjs(newDatezerominutes).format('hh:mm a')

console.log(`To see differences ${formatted}`) 
console.log(`Your case ${formattedzero}`)  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.8.34/dayjs.min.js"></script>