如何以角度管理日期时间

时间:2018-01-30 11:10:13

标签: javascript angular datetime momentjs

我正在使用Angular(第5版)。 我在Datetime遇到了一些问题。

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

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

我试图整合moment.js但我总是在控制台中出错,我该如何解决?

我上传了code here

有没有办法以角度来管理日期时间?

感谢

5 个答案:

答案 0 :(得分:1)

您的导入声明不正确
将声明改为:

import moment from 'moment';

您可以使用以下声明实现所需的格式:

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

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

答案 1 :(得分:1)

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

的内容
const dateNow = new Date();

要减去只做这样的事情

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

没有必要导入moment.js以简化使用和操纵日期。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

正确的导入是

import * as moment from 'moment';

答案 4 :(得分:-1)

你可以这样做: 考虑一下,您从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()函数更改为我想要的格式。

希望它有所帮助, 干杯