【问题标题】:How to get date object from moment.js after formatting it格式化后如何从moment.js获取日期对象
【发布时间】:2016-07-14 21:06:35
【问题描述】:

使用打字稿,我正在像这样用 moment.js 格式化我的日期。

function getCreatedDate(objContainingDate: any): Date {
    // Following line does not work since it is returning string, 
    // I need formatted date object to return 
    return moment(objContainingDate.createdDate).format("L")
}

format方法返回一个字符串,如何转换回日期对象?

【问题讨论】:

  • 也许你可以使用toDate(),但我不确定我是否理解你想要做什么。为什么你使用formatobjContainingDate.createdDate的类型是什么?
  • createdDate 是“日期”类型,但如果我只是尝试按原样使用它而不使用时刻,它会给我一个像“2016-07-14T19:58:47.2698161Z”这样的值而我没有想要那个,所以当我使用格式(“L”)时,我将它转换为“07/12/2016”,但它是字符串,我需要将它转换回日期。我什至尝试了 new Date( moment(objContainingDate.createdDate).format("L") ),但这给了我日期对象,例如“Thu Jul 14 2016 00:00:00 GMT-0500 (Central Daylight Time)”
  • 您实际上想要完成什么?你说输入是一个Date 对象,而期望的输出是一个Date 对象——你想在中间做什么?此外,除非您谈论将Date 对象转换为string(隐式或调用toString)的结果,否则您的最后评论毫无意义。 Date 对象本身没有格式。

标签: javascript momentjs


【解决方案1】:

这可能是一个延迟响应。但是,我认为它可以帮助其他仍然需要答案的人。

https://momentjs.com/guides/#/lib-concepts/internal-properties/

To retrieve a native Date object from Moment, use .toDate()

您可以直接从 Moment 中获取 Date 对象。

【讨论】:

    【解决方案2】:

    将 date 对象与 moment 一起使用会克隆它,并且原始对象保持不变以继续使用。但要将其转换回来,只需将格式化的时刻字符串传递给新的日期对象。

    var myDateObj = new Date(2011, 9, 16);
    var now = moment(myDateObj);
    #Now convert it back to date object
    var newDateObj = new Date(now.format("YYYY-MM-DDTHH:mm:ssZ"));
    

    【讨论】:

    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2020-01-16
    • 1970-01-01
    • 2015-11-26
    • 2019-11-26
    相关资源
    最近更新 更多