UNPKG

@alicloud/console-base-intl-factory-basic

Version:
33 lines (32 loc) 1.08 kB
import { forEach as _forEach } from 'lodash-es'; /** * 当 Intl.DateTimeFormat 失败时的兜底方法 */ export default function formatDateFallback(d) { var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss'; /** * 借鉴 moment * - `年Y月M日D季Q周W` 等大头都是大写的 * - `时hH分m秒s` 都是小写的(时的话用大写的 H 表示 24 小时制) * - 毫秒是 S */ var o = { 'Q+': Math.floor((d.getMonth() + 3) / 3), 'M+': d.getMonth() + 1, 'D+': d.getDate(), 'H+': d.getHours(), 'm+': d.getMinutes(), 's+': d.getSeconds(), S: d.getMilliseconds() }; var pattern = format; if (/(Y+)/.test(pattern)) { pattern = pattern.replace(RegExp.$1, "".concat(d.getFullYear()).substring(4 - RegExp.$1.length)); } _forEach(o, function (v, k) { if (new RegExp("(".concat(k, ")")).test(pattern)) { pattern = pattern.replace(RegExp.$1, RegExp.$1.length === 1 ? "".concat(v) : "00".concat(v).substring("".concat(v).length)); } }); return pattern; }