UNPKG

chatui2

Version:

The React library for Chatbot UI

81 lines (75 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var REGEX_FORMAT = /YYYY|M|D|dddd|HH|mm/g; var parseDate = function parseDate(date) { // if (date === null) { // return new Date(NaN); // } // if (typeof date === 'undefined') { // return new Date(); // today // } if (date instanceof Date) { return date; } return new Date(date); }; var padStart = function padStart(n) { return (n <= 9 ? '0' : '') + n; }; /** * 获取本周一的 0 点时间 */ var getWeekStart = function getWeekStart() { var now = new Date(); var day = now.getDay() || 7; // 周日返回 0,修正为 7 now.setHours(0, 0, 0, 0); now.setDate(now.getDate() - day + 1); return now; }; /** * 获取下周一的 0 点时间 */ var getNextWeekStart = function getNextWeekStart() { var weekStart = getWeekStart(); var nextWeek = new Date(weekStart); nextWeek.setDate(weekStart.getDate() + 7); return nextWeek; }; var getFormat = function getFormat(date) { var now = new Date(); var todayStart = new Date(now.setHours(0, 0, 0, 0)); var yesterdayStart = new Date(todayStart); yesterdayStart.setDate(todayStart.getDate() - 1); var weekStart = getWeekStart(); var nextWeekStart = getNextWeekStart(); if (date >= todayStart) { return 'LT'; // 今天 } if (date >= yesterdayStart) { return 'YT'; // 昨天 } if (date >= weekStart && date < nextWeekStart) { return 'WT'; // 这周 } return 'lll'; }; function formatDate(date, locale) { var $d = parseDate(date); var format = locale.formats[getFormat($d)]; var dates = { YYYY: "".concat($d.getFullYear()), M: "".concat($d.getMonth() + 1), D: "".concat($d.getDate()), dddd: locale.weekdays[$d.getDay()], HH: padStart($d.getHours()), mm: padStart($d.getMinutes()) }; return format.replace(REGEX_FORMAT, function (match) { return dates[match]; }); } var _default = formatDate; exports.default = _default;