1

我有一个从 JS(反应)中的用户输入获取的日期。

我需要以 cyymmdd 格式发送。我怎样才能转换它?

像这样01/05/1998 to 980501

编辑

如何将其从 cyymmdd 更改为 dd/mm/yyyy ?

4

5 回答 5

1

尝试这个

convertDateFromDDMMYYYYToCYYMMDD('01/05/1998'); //returns desired '980501'

function convertDateFromDDMMYYYYToCYYMMDD(ddmmyyyyDate){
    const testRegex = /^\d{2}\/\d{2}\/\d{4}$/
    if(!testRegex.test(ddmmyyyyDate))
        throw new TypeError('date does not match DDMMYYYY format')
    const dateParts = ddmmyyyyDate.split('/')
    const cyy = Number(dateParts.pop()) - 1900
    if(cyy<0)
        throw new Error('date before year 1900')
    return cyy+dateParts[1]+dateParts[0]
} 

于 2021-06-20T11:29:30.720 回答
1

你可以使用 momentjs 来做这个简单的方法

moment("11/05/1998").format("YYMMDD");
于 2021-06-20T11:32:17.837 回答
1

您可以通过拆分字符串来加入它,/然后反转数组(吐出的值)的顺序,然后再次加入并剪切前 2 个字符:

'01/05/1998'.split('/').reverse().join('').slice(2) // "980501"

分解:

'01/05/1998'
  .split('/') // ["01", "05", "1998"]
  .reverse()  // ["1998", "05", "01"]
  .join('')   // "19980501"
  .slice(2)   //   "980501"
于 2021-06-20T11:42:27.930 回答
0

假设您想在将其保存到数据库之前对其进行转换,我建议您使用 RegEx 来更改格式。

看看这个帖子,它有你正在寻找的答案。这是一个链接

此外,可能的重复。

于 2021-06-20T11:27:51.690 回答
0

最简单的方法是使用拆分

const date = "01/05/1998";
const [dd, mm, year] = date.split("/");
const yy = year.match(/\d\d$/)[0];

const result = `${yy}${mm}${dd}`;
console.log(result);

于 2021-06-20T11:40:33.597 回答