【发布时间】:2021-07-27 02:58:13
【问题描述】:
我在 React 中工作。我为获得正确的时间格式而烦恼。我正在从下拉列表中选择一个时间并使用moment(inputTime,HH:mm) 来格式化时间,但这就是我得到的。原因是什么?
除了moment(inputTime).format("HH:mm"),还有其他的方法吗?
Moment {_isAMomentObject: true, _i: "Tue May 04 2021 03:53:21 GMT+0530 (India Standard Time)", _isUTC: false, _pf: {…}, _locale: Locale, …}
_d: Tue May 04 2021 03:53:21 GMT+0530 (India Standard Time) {}
_i: "Tue May 04 2021 03:53:21 GMT+0530 (India Standard Time)"
_isAMomentObject: true
_isUTC: false
_isValid: true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: ƒ, …}
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -2, charsLeftOver: 0, …}
__proto__: Object
【问题讨论】:
-
.format("HH:mm")有什么问题? -
@HereticMonkey 我会得到一个错误“'isBetween' does not exist on type 'string'. 当我们执行以下代码时。 inputTime.format("HH:mm").isBetween(beforeTime,之后);
-
你不需要格式化的时刻。仅将
.format("HH:mm")添加到您在视图中显示的位置。 -
换一种说法。时刻对象(您已记录的内容)包装了 Date 对象,这是您解析的时间值,任意设置为今天的日期并放入浏览器的时区。那一刻对象具有附加到它的
isBetween之类的功能。它不会显示您解析时格式化的时间(从技术上讲,如果您深入研究_pf属性,您可能会找到它,但这是您不应该依赖的实现细节)。当您调用format时,它会获取日期和时区信息并提供时间,并根据需要进行格式化。
标签: javascript reactjs momentjs time-format