@alicloud/console-base-intl-factory-basic
Version:
ConsoleBase Intl Factory Basic, Pure Text, No JSX
55 lines (53 loc) • 2.21 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getFormatDateOptions;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var OPTIONS_DATE = {
year: 'numeric',
month: 'short',
day: 'numeric'
};
/**
* https://stackoverflow.com/questions/65604554/intl-datetimeformat-returns-an-hour-over-24
*
* Chrome 有个 BUG,不认 hour12: false
*
* ```
* new Intl.DateTimeFormat('zh-CN', {
* year: 'numeric',
* month: 'short',
* day: 'numeric',
* hour: '2-digit',
* minute: '2-digit',
* second: '2-digit',
* hour12: false
* }).format(new Date('2021-09-12 00:09:12'))
* ```
*
* - Chrome: 2021年9月12日 24:09:12
* - Firefox: 021年9月12日 00:09:12
*
* 注意:hour12: boolean 和 hourCycle:'h11' | 'h12' | 'h23' | 'h24' 是不可共用的
*/
var OPTIONS_TIME = {
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hourCycle: 'h23'
};
var OPTIONS_DATE_TIME = _objectSpread(_objectSpread({}, OPTIONS_DATE), OPTIONS_TIME);
function getFormatDateOptions(format) {
switch (format) {
case 'date':
return OPTIONS_DATE;
case 'time':
return OPTIONS_TIME;
default:
return OPTIONS_DATE_TIME;
}
}