format()

in core/utils.js [455:574]


    format(date, format) {
        switch (format) {
            case "d":
                return date.toLocaleDateString(undefined, { year: "numeric", month: "numeric", day: "numeric" });

            case "D":
                return date.toLocaleDateString(undefined, { weekday: "long", year: "numeric", month: "long", day: "numeric" });

            case "f":
                return date.toLocaleDateString(undefined, { weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric" });

            case "U":
            case "F":
                return date.toLocaleDateString(undefined, { weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" });

            case "g":
                return date.toLocaleDateString(undefined, { year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric" });

            case "G":
                return date.toLocaleDateString(undefined, { year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" });

            case "M":
            case "m":
                return date.toLocaleDateString(undefined, { month: "long", day: "numeric" });

            case "O":
            case "o":
                format = "yyyy-MM-ddTHH:mm:ss.fffK";
                break;

            case "R":
            case "r":
                return date.toUTCString();

            case "s":
                date = new Date(date.toISOString());
                format = "yyyy-MM-ddTHH:mm:ss.fff";
                break;

            case "t":
                return date.toLocaleString(undefined, { hour: "numeric", minute: "numeric" });

            case "T":
                return date.toLocaleString(undefined, { hour: "numeric", minute: "numeric", second: "numeric" });

            case "u":
                return exports.string.format(
                    "{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}.{6:000}Z",
                    date.getUTCFullYear(),
                    date.getUTCMonth(),
                    date.getUTCDate(),
                    date.getUTCHours(),
                    date.getUTCMinutes(),
                    date.getUTCSeconds(),
                    date.getUTCMilliseconds());

            case "Y":
            case "y":
                return date.toLocaleDateString(undefined, { year: "numeric", month: "long" });

            case undefined:
            case null:
                return date.toString();

            default:
                break;
        }

        return format
            // Year
            .replace("yyyyy", date.getFullYear().toString().padStart(5, "0"))
            .replace("yyyy", date.getFullYear().toString().padStart(4, "0"))
            .replace("yyy", date.getFullYear().toString().padStart(3, "0"))
            .replace("yy", date.getFullYear().toString().substr(2, 2))

            // Month (Name)
            .replace("MMMM", date.toLocaleDateString(undefined, { month: "long" }))
            .replace("MMM", date.toLocaleDateString(undefined, { month: "short" }))

            // Month (Number)
            .replace("MM", date.getMonth().toString().padStart(2, "0"))
            .replace("M", date.getMonth().toString())

            // Day of Weak
            .replace("dddd", date.toLocaleDateString(undefined, { weekday: "long" }))
            .replace("ddd", date.toLocaleDateString(undefined, { weekday: "short" }))

            // Day of Month
            .replace("dd", date.getDate().toString().padStart(2, "0"))
            .replace("d", date.getDate().toString())

            // Hours (24h)
            .replace("HH", date.getHours().toString().padStart(2, "0"))
            .replace("H", date.getHours().toString())

            // Hours (12h)
            .replace("hh", (date.getHours() > 12 ? date.getHours() - 12 : date.getHours()).toString().padStart(2, "0"))
            .replace("h", (date.getHours() > 12 ? date.getHours() - 12 : date.getHours()).toString())

            // Minutes
            .replace("mm", date.getMinutes().toString().padStart(2, "0"))
            .replace("m", date.getMinutes().toString())

            // Seconds
            .replace("ss", date.getSeconds().toString().padStart(2, "0"))
            .replace("s", date.getSeconds().toString())

            // Thousandths of Second
            .replace("fff", date.getMilliseconds().toString().padStart(3, "0"))
            .replace("ff", date.getMilliseconds().toString().padStart(2, "0"))
            .replace("f", date.getMilliseconds().toString())

            // Timezone offset
            .replace("zzz", exports.date.toTimezoneOffsetString(date.getTimezoneOffset()))
            .replace("zz", exports.date.toTimezoneOffsetString(date.getTimezoneOffset()).substr(0, 3))
            .replace("z", parseInt(exports.date.toTimezoneOffsetString(date.getTimezoneOffset()).substr(0, 3), 10).toString())

            // Timezone
            .replace("K", exports.date.toTimezoneOffsetString(date.getTimezoneOffset()));
    }