我希望以下列格式获取日期:YYYY-MM-DD。
我根据这个问题在Angular2中写了一个日期服务:How do I get the current date in JavaScript?。
我想检查它是否是正确的实现,或者是否有更好的方法来实现目标。
import { Injectable } from '@angular/core';
@Injectable()
export class DateService {
private currentDate = new Date();
getCurrentDateInApiFormat(): string{
let day:any = this.currentDate.getDate();
let month:any = this.currentDate.getMonth() + 1;
let year:any = this.currentDate.getFullYear();
let dateInApiFormat: string;
if(day<10){
day = '0' + day.toString();
}
if(month<10){
month = '0' + month.toString();
}
dateInApiFormat = day + '-' + month + '-' + year.toString();
return dateInApiFormat;
}
}
要在组件中使用。
@Injectable()
import { DatePipe } from '@angular/common';
class MyService {
constructor(private datePipe: DatePipe) {}
transformDate(date) {
this.datePipe.transform(myDate, 'yyyy-MM-dd'); //whatever format you need.
}
}
可以通过moment.js库实现不同的日期格式。您可以导入/添加它。并使用以下语法将时间戳转换为日期字符串。
moment.tz(this.value,'GMT')。格式('yyyy-MM-dd HH:mm:ss');
这里tz是时区。
// To use date service
import { Injectable } from '@angular/core';
@Injectable()
export class DateService {
public currentDate = new Date();
getCurrentDateInApiFormat() {
const Date = currentDate;
const Month = ('0' + (date.getMonth() + 1)).slice(-2);
const Day = ('0' + date.getDate()).slice(-2);
return [Date.getFullYear(), Month, Day].join('-');
}
}