Javascript 需要更改angular 2中的日期格式

Javascript 需要更改angular 2中的日期格式,javascript,angular,date,typescript,Javascript,Angular,Date,Typescript,当前使用的Date()格式为 Wed Jul 05 2017 15:14:53 GMT+0530 (India Standard Time) 我想更改它,以便以这种格式获取它(想要GMT时间而不是IST) 我还想知道怎样才能得到时间,比如说两年后 编辑: 我已修复了格式,但现在在将其设置为gmt时间而不是ist时遇到问题,通过以下方式修复了格式: let d = new Date(); let month = d.toLocaleString("en-us", { month: "short"

当前使用的Date()格式为

Wed Jul 05 2017 15:14:53 GMT+0530 (India Standard Time)
我想更改它,以便以这种格式获取它(想要GMT时间而不是IST)

我还想知道怎样才能得到时间,比如说两年后

编辑:

我已修复了格式,但现在在将其设置为gmt时间而不是ist时遇到问题,通过以下方式修复了格式:

let d = new Date();
let month = d.toLocaleString("en-us", { month: "short" });
let datestring = month + " " + d.getDate() + " " + (d.getHours()) + ":" + (d.getMinutes())+ ":" +d.getSeconds() + " " + (d.getFullYear()+2) + " GMT";

当然,这并不表示格林尼治标准时间,只是现在正试图解决这个问题。

我建议您使用momentjs.com这个库

moment(mydate).add(1, 'year');
提供比较两个日期的方法…等等。我想我会满足您的需要。

您可以使用该库,并以格林尼治标准时间获取日期,如下所示:

@Pipe({
    name: 'gmtDate'
}) export class GmtDate implements PipeTransform {
    transform(value: Date, addYear: number = 0): string {
        // utc() - turns date into GMT
        return moment(value).add(addYear, 'year').utc().format("MMM D HH:mm:ss YYYY")
    }
}

@Component({
    selector: 'my-app',
    template: `
        <div>
          <h2>{{myDate | gmtDate}}</h2>
          <h2>{{myDate | gmtDate:2}}</h2>
        </div>
    `,
}) export class App {
    myDate: string = new Date();;
}
@管道({
名称:“gmtDate”
})导出类GmtDate实现了PipeTransform{
转换(值:Date,addYear:number=0):字符串{
//utc()-将日期转换为GMT
返回时刻(值).add(addYear,'year').utc()格式(“MMM D HH:mm:ss YYYY”)
}
}
@组成部分({
选择器:“我的应用程序”,
模板:`
{{myDate}gmtDate}
{{myDate}gmtDate:2}
`,
})导出类应用程序{
myDate:string=新日期();;
}

这是上述管道的一个演示。

您可以像这样以角度操纵日期。这有用吗

  const date = new Date();
           const year = date.getFullYear();
           const month = date.getMonth();
           const day = date.getDay();
           console.log(year);
           console.log(year + 2);
           date.setFullYear(year + 2, month, day);
           console.log(date);
           console.log(date.toLocaleString());
输出:


我还将创建一个agular2管道。很好,请使用moment.js。是的,这可能有用,但如果不下载那个库,就没有办法做到吗?也不想分离日期组件并连接,因为这不是一种干净的书写方式。看看angular 2日期管道。如果它存储在一个字符串变量中,只需使用“slice”以您想要的方式显示它,例如:
{{data\u time | slice:0:10}
…等等,试试它,您就会知道其余的,希望它有帮助。如果您试图输出日期,请尝试使用
日期
管道。是吗?我已经修改了格式,但现在的问题是将当前时间更改为格林威治标准时间……但印度的15:14不是格林威治标准时间15:14。为什么要在印度显示一个时间,好像它是格林威治标准时间,而不是格林威治标准时间?@torazaburo我添加了一个编辑
  const date = new Date();
           const year = date.getFullYear();
           const month = date.getMonth();
           const day = date.getDay();
           console.log(year);
           console.log(year + 2);
           date.setFullYear(year + 2, month, day);
           console.log(date);
           console.log(date.toLocaleString());