Angular2日期格式

时间:2017-06-23 12:59:37

标签: angular angular-services

我正在尝试从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应该是一个包含正则表达式数据的数组..我已经尝试了一些东西来启动数组而没有运气..有人可以通过这个来指导我吗?

2 个答案:

答案 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');