Форматирование даты и времени форматирование функции javascript в .vue для запроса entity Framework на стороне сервера

#javascript #html #entity-framework #datetime #vue.js

#javascript #HTML #entity-framework #дата и время #vue.js

Вопрос:

Я хочу удалить форматирование даты и времени из таблицы vue на стороне клиента (медленный рендеринг с> 500 строками) на стороне сервера, но я не уверен, как это сделать!

У меня есть таблица vue с двумя столбцами дата начала и дата окончания, которые передаются в formatDate()

 <td>{{ formatDate(props.item.startDate) }}</td>
<td>{{ formatDate(props.item.endDate) }}</td>
  

в модели представления они являются обнуляемыми датами

 public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
  

Метод formatDate выглядит следующим образом в файле .vue, где dayjs() является компонентом, подобным moment .

 formatDate(date) {
   if (!date) {
       return null
   }

   return dayjs(date).format('MM/DD/YYYY')
}
  

В запросе Entity Framework я просто извлекаю даты следующим образом

 var recordsVM = records.Select(r => new GetRecordsReturnViewModel
{
     StartDate = r.StartDate,
     EndDate = r.EndDate,
     // fetch more data
}).Distinct();
  

Я хочу иметь возможность выполнять ту же операцию в операторе linq, но я не уверен, как это сделать!

Я думаю, что я хочу что-то подобное, но преобразование не сработает

 var recordsVM = records.Select(r => new GetRecordsReturnViewModel
{
     StartDate = (r.StartDate != null) ? ((DateTime)r.StartDate).ToString("MM/DD/YYYY") as DateTime? : null,
     EndDate = (r.EndDate != null) ? ((DateTime)r.EndDate).ToString("MM/DD/YYYY") as DateTime? : null,

}).Distinct();
  

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

1. У вас есть пример необработанного DateTime значения?

Ответ №1:

При форматировании DateTime.ToString() вы должны следовать определенному формату..

В этой статье описываются символы форматирования..

Ниже показано, как преобразовать DateTime в строковый формат, ticks а также DateTime сам объект..

Запустите этот пример онлайн через DotNetFiddle.net

 using System;

namespace Root
{
    public class Program
    {
        public static void Main()
        {
            /** could also do:
            var nowInTicks = DateTime.Now.Ticks; */
            var nowInTicks = 636905426867055839;
            var nowString = new DateTime(nowInTicks).ToString("MM/dd/yyyy");
            Console.WriteLine(nowString);
            Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy hh:mm:sstt"));
        }
    }
}
/* RETURN: */
// 04/11/2019
// 04/11/2019 01:32:28AM // in UTC