Dayjs: невозможно отформатировать пользовательское 24-часовое время до 12-часового
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
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>
Я взял принятый ответ и немного упростил его для своего варианта использования. Это практически тот же вариант использования.
Если дата не имеет значения, и вы только пытаетесь преобразовать время, тогда это все, что вам нужно.
const globalTime = "14:00";
const twelveHourTime = dayjs('1/1/1 ' + globalTime).format('hh:mm a')
// twelveHourTime = "02:00 pm"
Поскольку вам нужна полная дата для dayjs, чтобы отформатировать ее, но единственным выходом является время, тогда дата не имеет значения и может быть чем угодно. Типа "1/1/1"