Javascript 需要更改angular 2中的日期格式
当前使用的Date()格式为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"
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());