在Angular 2中格式化日期

时间:2018-06-26 06:28:13

标签: angular typescript

我正在使用Angular2(typescript),我对日期类型有疑问:

我得到一个字符串,例如“ 26/06/2018”我需要将此字符串转换为其他字符串2018-06-26T00:00:00+01:00

我尝试过:

 let dateStart : any ;

  if (filterDateStart != undefined) {
      console.log('before' , filterDateStart);
      dateStart = new Date(filterDateStart).toLocaleTimeString();
      console.log('After' , dateStart); --->  ƒ toLocaleTimeString() { [native code] }
  }

dateStart = new Date(filterDateStart).toLocaleDateString();我没有得到格式26T00:00:00+01:00

我该如何解决?谢谢。

更新:

我尝试过:

  dateStart = new Date(filterDateStart.split('/').reverse().join('/'));
  dateStart = new Date(filterDateEnd).toLocaleDateString();
  dateStart =  new Date(filterDateStart).toISOString();
  dateStart = new Date(filterDateStart.split('/').reverse().toISOString('/'));

6 个答案:

答案 0 :(得分:0)

日期'26 / 06/2018'不可解析,但日期'06 / 26/2018'是可解析的。

此后,您在()之后忘记了toLocalTimeString

let dateStart = new Date('06/26/2018').toLocaleTimeString();

返回格式化的字符串。

答案 1 :(得分:0)

您可以按照以下方式进行

var origDate = "26/06/2018"

var newDate = new Date(origDate.split('/').reverse().join('/'));

console.log(newDate);

答案 2 :(得分:0)

使用momenjs将您的日期(26/06/2018)传递给该函数     获取格式日期2016-06-26T00:00:00 + 01:00。

Activity

我希望这会有所帮助。

答案 3 :(得分:0)

香草JS

const date = new Date(...'26/06/2018'.split('/').reverse()).toISOString();

console.log(date);

说明

'26/06/2018'.split('/')
> ['26', '06', '2018'].reverse()
> ...['2018', '06', '26']
> new Date('2018', '06', '26')
> Thu Jul 26 2018 00:00:00 Date object call toISOString()

答案 4 :(得分:0)

使用正则表达式转换格式,然后创建日期对象

new Date("26/06/2018".replace( /(\d{2})\/(\d{2})\/(\d{4})/, "$2/$1/$3"))

答案 5 :(得分:0)

您可以使用诸如moment.js之类的库: http://momentjs.com/docs/#/parsing/

以下内容将输出您想要的格式。

var date = '26/06/2018';
var dateObj = moment(date, "DD/MM/YYYY").toDate();
alert(moment(dateObj).format("YYYY/MM/DDTHH:mm:ssZ"));

输出:http://jsfiddle.net/rLjQx/65986/