【问题标题】:How to manage datetime in angular如何以角度管理日期时间
【发布时间】:2018-07-09 06:03:09
【问题描述】:

我正在使用 Angular(v5)。 我对日期时间有些问题。

我需要当前时间,我必须将它保存在一个变量中。之后,我必须减去几个小时的间隔(8 小时或 1 小时)并将结果保存在变量中,然后使用console.log 执行此操作。

我需要的格式是:YYYY-MM-DD HH:mm:ss

我尝试集成moment.js,但总是在控制台中出现错误,我该如何解决?

我上传了我的code here

有没有办法简单地以角度管理日期时间?

谢谢

【问题讨论】:

    标签: javascript angular datetime momentjs


    【解决方案1】:

    您的导入语句不正确
    将语句更改为:

    import moment from 'moment';
    

    你想要的格式可以用下面的语句来实现:

    time.format('YYYY-MM-DD HH:mm:ss')
    

    我分叉了你的代码并添加了格式和时间计算函数:
    time format example

    【讨论】:

    • 非常感谢,我在 stackoverflow 上的回答错误。
    • @NicolòScapin 如果这个答案帮助你考虑接受它
    【解决方案2】:

    你可以只使用 Date 对象, 要获取当前日期,您可以使用类似

    const dateNow = new Date();
    

    做这样的事情来减法

    const dateNowMinusEightHours = new Date(new Date(dateNow).getTime() - 1000 * 60 * 60 * 8)
    

    无需导入 moment.js 即可简单地使用和操作日期。

    【讨论】:

      【解决方案3】:

      更正导入语句后,您可以减去时间并将其格式化为 console.log(moment().subtract(9,'hours').format('YYYY-MM-DD HH:mm:ss'));

      【讨论】:

        【解决方案4】:

        你可以这样做: 考虑一下,您正在从以下格式的 json 文件中获取某种日期 "dt":1517216400,

        现在在您想要获取该数据并将其更改为可读日期格式的组件的 ts 文件中。那么你应该遵循这种方法:

        **

        > let alldates = res['list'].map(res => res.dt)
        >     alldates.forEach((res) => {
        >         let jsdate = new Date(res * 1000)
        >         weatherDates.push(jsdate.toLocaleTimeString('en', { year: 'numeric', month: 'short', day: 'numeric' }))
        >     })
        

        **

        在这里,我获取了列表中的日期。然后应用 toLocaleTimeString() 函数更改为我想要的格式。

        希望对你有帮助, 干杯

        【讨论】:

        • 这样的复杂性对于实现日期的基本用法是不必要的
        【解决方案5】:

        正确的导入是

        import * as moment from 'moment';
        # Or 
        import moment from 'moment';
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多