更改数据和时间格式

时间:2018-08-06 07:47:37

标签: javascript date

我正在使用owl-date-time来获取日期和时间的角度。

它返回数据和时间格式为:2018-08-20T07:37:09.000Z

有没有一种方法可以将格式修改为:2018-08-20 09:37

很高兴能得到任何帮助。

3 个答案:

答案 0 :(得分:1)

我知道这有点矫kill过正,但是您可以像这样使用moment.js

console.log(new moment(`2018-08-20T07:37:09.000Z`).format('YYYY-MM-DD hh:mm'));
<script src="https://momentjs.com/downloads/moment.js"></script>

但是,如果您希望输出字符串完全相同,请执行以下操作:

let input = '2018-08-20T07:37:09.000Z';

let date = new moment(input).format('YYYY-MM-DD');

let time = (a => `${a[2]}:${a[1]}`)(input.split('T')[1].split(':').map(s => s.slice(0,2)));

console.log(`${date} ${time}`);
<script src="https://momentjs.com/downloads/moment.js"></script>

答案 1 :(得分:0)

有一个 momentjs 集成:

npm install ng-pick-datetime-moment moment --save

完成此操作后,您可以在OWL_DATE_TIME_FORMATS中使用矩量格式字符串。 from the docs示例:

import { NgModule } from '@angular/core';
import { OwlDateTimeModule, OWL_DATE_TIME_FORMATS} from 'ng-pick-datetime';
import { OwlMomentDateTimeModule } from 'ng-pick-datetime-moment';

// See the Moment.js docs for the meaning of these formats:
// https://momentjs.com/docs/#/displaying/format/
export const MY_MOMENT_FORMATS = {
    parseInput: 'l LT',
    fullPickerInput: 'l LT',
    datePickerInput: 'l',
    timePickerInput: 'LT',
    monthYearLabel: 'MMM YYYY',
    dateA11yLabel: 'LL',
    monthYearA11yLabel: 'MMMM YYYY',
};

@NgModule({
    imports: [OwlDateTimeModule, OwlMomentDateTimeModule],
    providers: [
        {provide: OWL_DATE_TIME_FORMATS, useValue: MY_MOMENT_FORMATS},
    ],
})
export class AppExampleModule {
}

您要查找的格式为'YYYY-MM-DD HH:mm'

console.log(moment().format('YYYY-MM-DD HH:mm'))
<script src="https://momentjs.com/downloads/moment.js"></script>

答案 2 :(得分:0)

正如其他人所述,moment.js是一个过大的杀伤力。出于格式化目的,您可以使用普通的javascript。

time = new Date('2018-08-20T07:37:09.000Z').toLocaleString().split(',')[1];
console.log(time)
time = time.split('').splice(0,6).join('');
date  ='2018-08-20T07:37:09.000Z'.split('T')[0];
console.log(date + time)