我正在尝试从angualr 2服务中的datepicker格式化日期..
date是一个字符串“2010-01-01”,格式为01/01/2010 ..我知道我可以使用管道,但想手动计算出来..
static formatDate(date: string){
const dateString = date.match(/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/) ;
const date_decode = new Date(dateString[3], parseInt(dateString[1]-1), dateString[2]);
}
我是一个全新的noob @ angular2所以这是一场斗争......
dateString应该是一个包含正则表达式数据的数组..我已经尝试了一些东西来启动数组而没有运气..有人可以通过这个来指导我吗?
答案 0 :(得分:0)
感谢同事们对此解决方案的了解。
static formatDate(initialDate: string): string {
const initialDateParsed = Date.parse(initialDate.replace('-', '/'));
const newDate = new Date(initialDateParsed);
if (isNaN(initialDateParsed)) { throw new Error(`Invalid initialDate provided: '${ initialDate }'`); }
const yyyy = newDate.getFullYear();
const mm = (`0${ newDate.getMonth() + 1 }`).slice(-2);
const dd = (`0${ newDate.getDate() }`).slice(-2);
return `${ dd }/${ mm }/${ yyyy }`;
}
答案 1 :(得分:0)
我认为您的功能 formatDate 参数日期为" 2010-01-01"在" YYYY-MM-DD"格式然后您所需的输出01/01/2010在" MM / DD / YYYY"以下格式是ts函数
static function formatDate(date){
const dateString = date.match(/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/) ;
const date_decode = new Date(dateString[1], parseInt(dateString[2]-1), dateString[3]); // date_decode = javascript ISO date string
const formatted_date = date_decode.toLocaleDateString('en-US');
console.log(formatted_date); // formatted_date = 01/01/2010
}
以上相同的代码在javascript(稍加修改)
中有效
function formatDate(date){
const dateString = date.match(/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/) ;
const date_decode = new Date(dateString[1], parseInt(dateString[2]-1), dateString[3]); // date_decode = javascript ISO date string
const formatted_date = date_decode.toLocaleDateString('en-US'); // remove 'en-US' if you want output in user local format
console.log(formatted_date); // formatted_date = 01/01/2010
}
formatDate('2010-04-01');