我正在使用Angular(第5版)。 我在Datetime遇到了一些问题。
我需要当前时间,我必须将其保存在变量中。之后,我必须减去一个小时的间隔(8小时或一小时)并将结果保存在变量中,然后使用console.log
进行。
我需要格式为:YYYY-MM-DD HH:mm:ss
我试图整合moment.js
但我总是在控制台中出错,我该如何解决?
我上传了code here
有没有办法以角度来管理日期时间?
感谢
答案 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()函数更改为我想要的格式。
希望它有所帮助, 干杯