【问题标题】:datatable time is different from database time数据表时间与数据库时间不同
【发布时间】:2020-11-28 13:10:05
【问题描述】:

我试图在数据表中显示数据库时间,但问题是显示当前时间

查看数据库时间

查看数据表时间

.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文件,但没有任何想法

https://momentjs.com/

我想在数据表中显示数据库时间?

帮助我在尝试和尝试但没有工作需要更正的地方

【问题讨论】:

    标签: javascript jquery ajax datatable


    【解决方案1】:

    我认为你的问题是时区。您的数据库时区可能与您的浏览器时区不同(您的数据表适用于浏览器时区)。

    首先,查看 ajax 请求,打开您的 chrome 控制台选项卡网络,选​​择 xhr,然后重新加载页面。您将看到您的数据表使用 ajax 请求数据,请查看响应。

    如果响应日期正确,只需将数据表列类型指定为字符串 (https://datatables.net/reference/option/columns.type),这样您就会看到它的原样。目前它会帮助你,但我想它会得到错误的排序。

    解决您的问题的正确方法是了解您的数据库和浏览器时区(操作系统时区),然后使用时刻 utc 偏移量(https://momentjs.com/docs/#/manipulating/utc-offset/)对其进行调整以增加或减少分钟(即 utc +08: 00 所以 8 * 60 分钟 = 480 作为 utcOffset 参数)

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多