Форматирование даты ISO в данных ответа API

#javascript #node.js #date #format #iso8601

#javascript #node.js #Дата #форматирование #iso8601

Вопрос:

Как отформатировать дату, когда внутри {{item.Дата }}
Я получаю много строк, и я не знаю, как отформатировать их все сразу
. Я думал, что установка типа данных в MySQL в качестве даты исправит это, но, по-видимому, это не так. Заранее спасибо! Что я получаю

 2021-03-18T23:00:00.00Z
 

Чего я хочу

 2021-03-15
 

MyCode

API

 app.get('/schedetails/:schid', (_req, _res) => {
    mysqlConnection.query('Select * from ScheDetails where Schedule_ID = ?',[_req.params.schid], (err, rows, _fields) => {
        if (!err)
            _res.send(rows);
        else
            console.log(err);
    })
});
 

файл .ts

 getScheduleDetail(item){
    this.http.get("http://localhost:3000"  "/schedetails/"  item).subscribe(res=>{
      console.log(res)
      this.schedetaildata = res;
    })
  }
 

HTML

 <div *ngFor="let item of schedetaildata">
    <p>{{item.Weekday}}</p>
    <p>{{item.Time_start}}</p>
    <p>{{item.Time_finish}}</p>
    <p>{{item.Date}}</p>
  </div>
 

Комментарии:

1. Это довольно простая операция для перебора строк и slice() строк

Ответ №1:

У вас есть строка даты ISO 8601, и поскольку позиции фиксированы, вы знаете, что вам нужны только первые 10 символов.

Самым простым решением было бы использовать substring() .

Пример:

 {{ item.Date.substring(0, 10) }}
 

Комментарии:

1. Спасибо, Натан! Знаете ли вы какой-либо способ удалить начальные нули из даты, например, 2021-03-21 в 2021-3-15? Я пробовал .replace(/-0 /g, ‘-‘) , у меня это не работает!

2. Нет проблем 🙂 Что вы видите, когда используете replace то, что вы опубликовали? На первый взгляд кажется, что он должен работать так, как вы ожидаете. {{ item.Date.substring(0, 10).replace(/-0 /g, '-') }}