将新的Date()转换为打字稿,角度的UTC格式

时间:2018-12-09 23:47:33

标签: angular typescript datetime-format utc

我有一个来自angular的请求,该请求将日期发送到服务器。

const activationDate = new Date();

在发送请求之前,我需要将其转换为UTC日期格式

在我的模型中,我有一个Date变量将日期传递给服务器

export class PersonDetails {
  id: string;
  activationDate?: Date;
}

4 个答案:

答案 0 :(得分:2)

您可以使用toISOString()功能(MDN web docs)。

  

时区始终为零UTC偏移。

var activationDate = new Date().toISOString();

答案 1 :(得分:1)

尽管上述解决方案是正确的,但如果您需要大量使用日期,则可以使用moment.js lib,这可能会很有帮助。

请参考http://momentjs.com/docs/#/parsing/utc/

1. npm install moment
2. import * as _moment from 'moment';
const moment = _moment;
const utcDate = moment.utc();
console.log(utcDate.format());

答案 2 :(得分:0)

personModel: PersonDetail;    

const activationDate = new Date();

this.personModel.activationDate = new Date(activationDate.getUTCFullYear(),
                                            activationDate.getUTCMonth(),
                                            activationDate.getUTCDate(),
                                            activationDate.getUTCHours(),
                                            activationDate.getUTCMinutes(),
                                            activationDate.getUTCSeconds()
                                            );

或 可以使用单独的方法获取UTCDate

const activationDate = this.getNowUTC();    

private getNowUTC() {
  const now = new Date();
  return new Date(now.getTime() + (now.getTimezoneOffset() * 60000));
}

A good article on converting DateTime

答案 3 :(得分:0)

我创建了这样的管道

@Pipe({ name: 'UTCDate'})
export class UTCDatePipe implements PipeTransform  {
    constructor() {}
    transform(value) {
        if (value)  {
            return  moment.utc(value).format('YYYY MMMM DD');
        } else {
              return '';
        }
    }
}

这样查看:

{{invoice.invoiceDate | UTCDate}}

和此app.module

import {UTCDatePipe} from "@app/utcDate.component";

@NgModule({
    declarations: [
        AppComponent,
        UTCDatePipe
    ],