Hour1to12Parser.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
  2. import _createClass from "@babel/runtime/helpers/esm/createClass";
  3. import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
  4. import _inherits from "@babel/runtime/helpers/esm/inherits";
  5. import _createSuper from "@babel/runtime/helpers/esm/createSuper";
  6. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  7. import { Parser } from "../Parser.js";
  8. import { numericPatterns } from "../constants.js";
  9. import { parseNumericPattern, parseNDigits } from "../utils.js";
  10. export var Hour1to12Parser = /*#__PURE__*/function (_Parser) {
  11. _inherits(Hour1to12Parser, _Parser);
  12. var _super = _createSuper(Hour1to12Parser);
  13. function Hour1to12Parser() {
  14. var _this;
  15. _classCallCheck(this, Hour1to12Parser);
  16. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  17. args[_key] = arguments[_key];
  18. }
  19. _this = _super.call.apply(_super, [this].concat(args));
  20. _defineProperty(_assertThisInitialized(_this), "priority", 70);
  21. _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['H', 'K', 'k', 't', 'T']);
  22. return _this;
  23. }
  24. _createClass(Hour1to12Parser, [{
  25. key: "parse",
  26. value: function parse(dateString, token, match) {
  27. switch (token) {
  28. case 'h':
  29. return parseNumericPattern(numericPatterns.hour12h, dateString);
  30. case 'ho':
  31. return match.ordinalNumber(dateString, {
  32. unit: 'hour'
  33. });
  34. default:
  35. return parseNDigits(token.length, dateString);
  36. }
  37. }
  38. }, {
  39. key: "validate",
  40. value: function validate(_date, value) {
  41. return value >= 1 && value <= 12;
  42. }
  43. }, {
  44. key: "set",
  45. value: function set(date, _flags, value) {
  46. var isPM = date.getUTCHours() >= 12;
  47. if (isPM && value < 12) {
  48. date.setUTCHours(value + 12, 0, 0, 0);
  49. } else if (!isPM && value === 12) {
  50. date.setUTCHours(0, 0, 0, 0);
  51. } else {
  52. date.setUTCHours(value, 0, 0, 0);
  53. }
  54. return date;
  55. }
  56. }]);
  57. return Hour1to12Parser;
  58. }(Parser);