У меня проблема с отображением дат в представлениях приложения, когда я размещаю сайт на сервере SmarterASP.net. По сути, при получении дат и отображении в представлениях часовой пояс изменяется автоматически, и я не настроил его - я не знаю, является ли он автоматическим из ASP.NET MVC, но я ничего не установил вообще. Например, вот некоторые даты, введенные в базу данных:
Чтобы извлечь конкретную запись, я использую JsonResult, который возвращает информацию, необходимую для этой записи:
[HttpPost]
public JsonResult Get(Guid? id)
{
var model = db.Student.Find(id);
return Json(new
{
model.Id,
model.Name,
model.CreatedDate
}, JsonRequestBehavior.AllowGet);
}
В представлении вызывается запрос AJAX для отображения информации:
function getStudentInfo() {
$.ajax({
url: `@Url.Action("Get")`,
type: "POST",
dataType: "json",
data: { id },
success: function (result) {
console.log(result.CreatedDate);
}
});
}
Таким образом, дата, представленная в консоли для первой записи первой цифры, равна: /Date(1570551060227)/
Кроме того, я использую функцию JavaScript для преобразования даты JSON в действительный формат:
function formatDataHoraJson(date, seconds) {
if (!date)
return "";
const formattedDate = new Date(parseInt(date.substr(6)));
const day = formattedDate.getDate();
var month = formattedDate.getMonth();
month += 1;
const year = formattedDate.getFullYear();
const hour = formattedDate.getHours();
const minute = formattedDate.getMinutes();
const second = formattedDate.getSeconds();
if (seconds)
return pad(day, 2) + "/" + pad(month, 2) + "/" + pad(year, 4) + " - " + (pad(hour, 2) + ":" + pad(minute, 2) + ":" + pad(second, 2));
else
return pad(day, 2) + "/" + pad(month, 2) + "/" + pad(year, 4) + " - " + (pad(hour, 2) + ":" + pad(minute, 2));
}
Результат после вызова функции всегда отображается еще на 4 часачем дата в базе данных (2019-10-08 13:11:00:227
)
ВАЖНО: Сервер, на котором размещено приложение, находится не в Бразилии. Однако часовой пояс даты, отображаемой на экране, соответствует бразильскому часовому поясу, хотя в базе данных сохраненная дата находится в часовом поясе, из которого размещено приложение. Сначала я хотел бы отобразить дату в том виде, в котором она хранится на сервере базы данных.