Как мне настроить функцию javascript для преобразования даты в формат дд / ммм / гггг при привязке из базы данных к элементу управления mvc? - PullRequest
0 голосов
/ 01 июля 2019

Я написал функцию в javascript для преобразования даты в определенный формат, но я хочу, чтобы она конвертировала мою дату в формат дд / ммм / гггг, т.е. 01 / июль / 2019.

  function formatDate(dateVal = "") {
        if (dateVal == null || dateVal == '')
        {
            return '';
        }
        else
        {
            var date = new Date(parseInt(dateVal.replace('/Date(', '')))
            var month = date.getMonth() + 1;
            var day = date.getDate();
            var year = date.getFullYear();
            return (day.toString().length > 1 ? day : "0" + day) + "/" + (month.toString().length > 1 ? month : "0" + month) + "/" + year;
        }

    }

например. если дата из db идет следующим образом 2019-07-24 00:00:00.000, то она должна преобразовать ее в dd / MMM / yyyy.

управление MVC:

Обновление:

дата поступает из базы данных, но перед ее привязкой к текстовому полю она имеет формат json, т.е. / Date (1563220800000) /.

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Если ваша БД выводит 2019-07-24 00:00:00.00, это близко к необходимому формату разбора. Учтите следующее:

function formatDate(dateStr) {
  if (dateStr == null || dateStr == '' || dateStr == undefined) {
    return false;
  }
  var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  var dt;
  if(!isNaN(dateStr)){
    dt = parseInt(dateStr);
  } else if(dateStr[0] =="/"){
    dt = parseInt(dateStr.slice(6,-2));
  } else {
    dt = Date.parse(dateStr); // Output: 1563951600000
  }
  var date = new Date(dt); // Output: Date Object (2019-07-24T07:00:00.000Z)
  var mm = date.getMonth();
  var dd = date.getDate();
  var yy = date.getFullYear();
  var MMM = months[mm];
  dd = (dd < 10 ? "0" + dd : dd);
  return dd + "/" + MMM + "/" + yy;
}

console.log("1: " + formatDate("/Date(1563220800000)/"));
console.log("2: " + formatDate("2019-07-24 00:00:00.000"));
console.log("3: " + formatDate("1562019448869"));

Затем вы можете использовать его так:

$('#InspectionReport_InspectionDate').val(formatDate(data.InspectionReport.InspectionDate));

Обновление

Я настроил так, чтобы он мог принимать 3 разных формата. 1. Он может принять время EPOCH 2. Он может принять «/ DATE (EPOCH) /» (к вашему сведению - это не JSON). 3. Может принимать время ISO.

Надеюсь, это поможет.

0 голосов
/ 01 июля 2019

Когда вы привязываете поле к значению в вашей модели, вы должны использовать одно из средств метода ToString () для Date или DateTime.Атрибут model.InspectionReport.InspectionDate.ToString("dd/MMM/yyyy")

DisplayFormat также можно использовать для объявления форматирования в модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...