如何将moment js datetime转换为string,反之亦然
我使用计算日期时间
datetime_from_moment = moment.utc().utcOffset('+0530')
然后将其转换为字符串,以便我可以将它保存到firebase实时数据库,如下所示:
datetime_from_moment_string = datetime_from_moment.toString()
一段时间后,我从数据库中获取该日期时间(以字符串格式)进行一些计算。要进行这些计算,我必须将该字符串转换为时刻类型。我该怎么做呢?
字符串类型的时刻日期时间看起来像这个Fri Mar 01 2019 22:07:56 GMT+0530
为了转换它我做这个datetime_converted = moment(datetime_from_moment_string)
但我得到这个错误:
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to / for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: Fri Mar 01 2019 22:10:42 GMT+0530, _f: undefined, _strict: undefined, _locale: [object Object]
Error
at Function.createFromInputFallback (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:320:98)
at configFromString (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2368:15)
at configFromInput (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2594:13)
at prepareConfig (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2577:13)
at createFromConfig (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2544:44)
at createLocalOrUTC (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2631:16)
at createLocal (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2635:16)
at hooks (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:12:29)
at Object.<anonymous> (E:\workspace_javascript\testingProject\index.js:58:26)
at Module._compile (internal/modules/cjs/loader.js:688:30)
回答如下:
您需要仔细构建格式字符串。如果你更好地格式化DateTime字符串,这会容易得多。但是如果你提供了什么,我认为这应该有效。
moment("Fri Mar 01 2019 22:07:56 GMT+0530").format('dddd MMMM Do YYYY HH:mm:ss Z');
http://jsfiddle/qp8xfgkc/
如何将moment js datetime转换为string,反之亦然
我使用计算日期时间
datetime_from_moment = moment.utc().utcOffset('+0530')
然后将其转换为字符串,以便我可以将它保存到firebase实时数据库,如下所示:
datetime_from_moment_string = datetime_from_moment.toString()
一段时间后,我从数据库中获取该日期时间(以字符串格式)进行一些计算。要进行这些计算,我必须将该字符串转换为时刻类型。我该怎么做呢?
字符串类型的时刻日期时间看起来像这个Fri Mar 01 2019 22:07:56 GMT+0530
为了转换它我做这个datetime_converted = moment(datetime_from_moment_string)
但我得到这个错误:
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to / for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: Fri Mar 01 2019 22:10:42 GMT+0530, _f: undefined, _strict: undefined, _locale: [object Object]
Error
at Function.createFromInputFallback (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:320:98)
at configFromString (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2368:15)
at configFromInput (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2594:13)
at prepareConfig (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2577:13)
at createFromConfig (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2544:44)
at createLocalOrUTC (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2631:16)
at createLocal (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:2635:16)
at hooks (E:\workspace_javascript\testingProject\node_modules\moment\moment.js:12:29)
at Object.<anonymous> (E:\workspace_javascript\testingProject\index.js:58:26)
at Module._compile (internal/modules/cjs/loader.js:688:30)
回答如下:
您需要仔细构建格式字符串。如果你更好地格式化DateTime字符串,这会容易得多。但是如果你提供了什么,我认为这应该有效。
moment("Fri Mar 01 2019 22:07:56 GMT+0530").format('dddd MMMM Do YYYY HH:mm:ss Z');
http://jsfiddle/qp8xfgkc/