簡體   English   中英

拆分字符串以僅獲取位置 1、2 和 3,刪除其他所有內容

[英]Split string to only get positions 1, 2 and 3, removing everything else

我正在使用 nodejs + mysql,我想在 json api 中顯示日期。

日期不是字符串,是 mysql 日期類型。

E* 我不能 select date(columnname) 因為我已經從表中選擇了所有內容。 這是我的查詢:

var query_ = `
SELECT p.*, GROUP_CONCAT(ss.name) AS technologies 
FROM Projects_Project AS p
JOIN Projects_rel_Project_Skill AS prps ON prps.Project = p.ProjectID
JOIN Skills AS ss ON ss.skillID = prps.Skill
GROUP BY p.ProjectID
ORDER BY p.date DESC;`;
var mylist = results.map(row => ({
    'date': row.date
}));

這將 output: "2022-08-24T05:00:00.000Z"

所以我的嘗試是在T之后使用.split,但它給出了一個錯誤,說.split只能用於字符串並且日期不是字符串。

var mylist = results.map(row => ({
    'date': row.date.split('T')[0]
}));

所以搜索更多我嘗試將其轉換為字符串,但 output 是不同的。

var mylist = results.map(row => ({
    'date': row.date.toString()
}));

“2022 年 8 月 24 日星期三 00:00:00 GMT-0500(中部夏令時間)”

所以現在的問題是我只想要“2022 年 8 月 24 日”,我不知道該怎么做。 使用.split(' ')[1]只會給我“Aug”

我也嘗試做.split(' ')[1, 2, 3].split(' ')[1][2][3]但什么也沒做。

你需要分割你的分裂日期

wantedDate = .split(' ').slice(1, 3)

然后您可以加入您的wantedDate 以獲取字符串日期

您可以嘗試使用toLocaleDateString來格式化日期。 例如:

date: row.date.toLocaleString('en-US', {
  day: 'numeric',
  month: 'short',
  year: 'numeric'
});

這將是 output Aug 24, 2022

請參閱此處了解更多信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

row.date是一個Date object,您可以使用toISOString()方法將其轉換為字符串:

 const now = new Date(); console.log(now.toISOString().split("T"))

因此,在您的情況下,它將是:

var mylist = results.map(row => ({
    'date': row.date.toISOString().split('T')[0]
}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM