#javascript #jquery #ajax #datatable
#javascript #jquery #ajax #datatable
Вопрос:
Я пытаюсь показать время базы данных в таблице данных, но проблема в том, что отображается текущее время
см. раздел Время базы данных
см. раздел Время обработки данных
.cshtml
$.ajax({
url: strUrl,
type: 'POST',
success: function (result) {
console.log("inside the success method")
$('#').DataTable({
data: result,
columns: [
{ data: "StartFromTime" },
{ data: "EndToTime" },
],
"aoColumnDefs": [
{
"aTargets": [0],
//title: "StartFromTime",
"mRender": function (row) {//data
//console.log("inside the date and time:" data ":" type);
//console.log(moment(row.StartFromTime).format('DD/MM/YYYY hh:mm:ss'));
//console.log("StartFromTime:" moment(row.StartFromTime).format('hh:mm:ss'));
//console.log("innnn");
//console.log(row);
////console.log(data);
//console.log(type);
//console.log(moment(row).format('hh:mm:ss'));
//var date = new Date(parseInt(data.substr(6)));
//console.log("date:" date);
//return date.getDate();
return moment(row.StartFromTime).format('hh:mm:ss');
}
},
{
"aTargets": [1],
"mRender": function (row) {//data
return moment(row.EndToTime).format('hh:mm:ss');
}
},
Модель
public class TimeList
{
public int Id { get; set; }
public DateTime StartFromTime { get; set; }
public DateTime EndToTime { get; set; }
что я пытаюсь:
приведенный ниже код также не работает:
"mRender": function(row){
var aDate= new Date(row);
var dateString = '';
var h = aDate.getHours();
var m = aDate.getMinutes();
var s = aDate.getSeconds();
if (h < 10) h = '0' h;
if (m < 10) m = '0' m;
if (s < 10) s = '0' s;
dateString = h ':' m ':' s;
return dateString;
}
приведенный ниже код также не работает:
var aDate = new Date(row.EnquiryFromTime);
console.log("gettime:" aDate);
return aDate.getTime();
как показать время базы данных в datatable?
проблема в том, что функция moment() встроена в функцию jquery, поэтому я хочу показать текущее время, чтобы показать время базы данных
Я постоянно пересматриваю это moment.js файл, но не получить ни малейшего представления
Я хочу показать время базы данных в datatable?
помогите, я пытаюсь и пытаюсь, но не работаю, какое место нужно исправить
Ответ №1:
Я думаю, что ваша проблема — часовой пояс. часовой пояс вашей базы данных может отличаться от часового пояса вашего браузера (ваш datatable работает в часовом поясе браузера).
сначала взгляните на ajax-запрос, откройте вкладку chrome console network, выберите xhr, а затем перезагрузите страницу. вы увидите, что ваш datatable запрашивает данные с помощью ajax, посмотрите ответ.
если даты ответа верны, просто укажите тип столбца datatable в виде строки (https://datatables.net/reference/option/columns.type ), так что вы увидите все как есть. это поможет вам на данный момент, но я предполагаю, что это приведет к неправильной сортировке.
правильный способ решения вашей проблемы — узнать вашу базу данных и часовой пояс вашего браузера (часовой пояс ОС), а затем настроить его с учетом смещения момента utc (https://momentjs.com/docs/#/manipulating/utc-offset /), чтобы добавить или вычесть минуты (т.е. utc 08:00, так что 8 * 60 минут = 480 в качестве параметра utcOffset)