如何拆分数据以仅获取特定部分-JavaScript

时间:2018-07-17 09:10:35

标签: javascript reactjs

如何通过以下代码将数据拆分为2018-07-17

getCompanyHolydayLeave() {
  this.props.actions.getCompanyLeaveDetails().then(() => {
    if (!this.props.common.getCompanyLeaveDetailsPending) {
     const poyaArray= this.props.common.companyLeave 
     var result = poyaArray.map((poyaArray) => poyaArray.date )
     var  xData= result.toString().split("T")

     this.setState({ companyLeave:xData });  
     }
  });
}

我的输出xdata就是这样。

0: "2018-04-29"

1: "18:30:00.000Z,2018-05-06"
​
2: "18:30:00.000Z,2018-05-28"
​
3: "18:30:00.000Z,2018-06-26"

我需要这样:

0: "2018-04-29"

1: "2018-05-06"

我该怎么办?

6 个答案:

答案 0 :(得分:6)

您可以使用xData格式化map()

var xData = ["2018-04-29",
 "18:30:00.000Z,2018-05-06",
"18:30:00.000Z,2018-05-28",
"18:30:00.000Z,2018-06-26"];

xData = xData.map(d => d.split(',')[d.split(',').length-1]);
console.log(xData);

答案 1 :(得分:3)

您可以非常容易地在逗号(,)上拆分。之后,您需要在日期上应用格式。以下是该代码:

var x="18:30:00.000Z,2018-05-06";
var t=x.split(',') // it will give you array
new Date(t[1])

下面您可以为日期应用格式器

答案 2 :(得分:3)

您可以为此使用Date

  

输入日期格式的更改不会影响输出格式。


function convertDate(dateStr){
     var _tmp = new Date(dateStr);
     return _tmp.toISOString().split("T")[0];
}

示例:

var dateArray = ["2018-04-29","18:30:00.000Z,2018-05-06","18:30:00.000Z,2018-05-28","18:30:00.000Z,2018-06-26"]

function convertDate(dateStr){
   var _tmp = new Date(dateStr);
   return _tmp.toISOString().split("T")[0];
}

var newDateArray = dateArray.map(x=>convertDate(x));
console.log(newDateArray);

答案 3 :(得分:2)

假设您在xData中具有值。 只需遍历xData中的每个值并执行:

xData[i] = xData.split[i](",")[1];

然后您将在xData变量中保存更改的数据。

或者,如果您想让它更清晰一点,可以执行以下操作:

var temp = xData.split[i](",");
xData[i] = temp[1];

答案 4 :(得分:2)

使用Date类,您可以创建这样的日期格式:

let date = new Date("18:30:00.000Z,2018-05-06");
let dateString = date.toISOString().split("T")[0];

Date类的构造函数使用Date-class构造函数理解所有0-4个输入示例。使用ISO标准datetime格式的date-part构造输出。

答案 5 :(得分:2)

这是将字符串2018-07-17T09:03:08.819Z转换为日期的方法。

var fromDate = new Date("2018-07-17T09:03:08.819Z");

var formattedDate = fromDate.getFullYear() + "-" + (fromDate.getMonth()+1) + "-" + fromDate.getDate();
console.log(formattedDate);

在使用时区时请确保该时间。