12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { Parser } from "../Parser.js";
- import { dayPeriodEnumToHours } from "../utils.js";
- // in the morning, in the afternoon, in the evening, at night
- export class DayPeriodParser extends Parser {
- priority = 80;
- parse(dateString, token, match) {
- switch (token) {
- case "B":
- case "BB":
- case "BBB":
- return (
- match.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting",
- }) ||
- match.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting",
- })
- );
- case "BBBBB":
- return match.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting",
- });
- case "BBBB":
- default:
- return (
- match.dayPeriod(dateString, {
- width: "wide",
- context: "formatting",
- }) ||
- match.dayPeriod(dateString, {
- width: "abbreviated",
- context: "formatting",
- }) ||
- match.dayPeriod(dateString, {
- width: "narrow",
- context: "formatting",
- })
- );
- }
- }
- set(date, _flags, value) {
- date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);
- return date;
- }
- incompatibleTokens = ["a", "b", "t", "T"];
- }
|