【问题标题】:Ajax call returns wrong Date format in Datalist formAjax 调用以 Datalist 形式返回错误的日期格式
【发布时间】:2019-05-28 19:40:34
【问题描述】:

我有这个 Ajax 调用函数:

$(document).ready(function(){
v
var TesterID = "<?php echo $_GET['TesterID']; ?>"; /* value der Tester erhalten */ 

        $.ajax({ /* AJAX aufrufen */
            url: 'ma_get-TesterID.php',
            type: 'get', /* Methode zum übertragen der Daten */
            data: {TesterID:TesterID}, /* Daten zu übermitteln */
            dataType: 'json',
            success:function(response){ /* Die zurückgegebenene Daten erhalten */

                var len = response.length;

                $("#Teststart").empty(); /* Die erhaltenden Daten werden bei der ID angezeigt */
                for( var i = 0; i<len; i++){
                    var CID = response[i]['CID'];
                    var Datum = response[i]['Datum'];

                    $("#Teststart").append("<option value='"+Datum+"'>"+Datum+"</option>");

                }
            }
        });
}); 

Ajax 使用以下代码从数据库中返回日期:

$sqlreadZeit = "Select TOP 10 CID,Datum from DB.dbo.xxx where TesterID = '".$_GET['TesterID']."' order by Datum DESC";
                $result1 = sqlsrv_query($conn, $sqlreadZeit);
                $zeiten_arr = array();
                while ($row = sqlsrv_fetch_array($result1, SQLSRV_FETCH_ASSOC)) {
                $CID = $row['CID'];

                $Datum = $row['Datum']->format('d.m.Y H:m:s');

                $zeiten_arr[] = array("CID" => $CID, "Datum" => $Datum);

                }
    header('Content-type: application/json');
  echo json_encode($zeiten_arr); /* Ausgabe printen die Erhalten werden soll */

这些是我在 SQL 中执行查询时的结果:

但在 Datalist 中它显示的日期是这样的,似乎是四舍五入的。

问题可能出在哪一部分?没看到。

我在另一个 Javascript 函数中使用 MS SQL Server 和 moment-with-locales.js。

【问题讨论】:

  • 请在 php date_default_timezone_set('America/Los_Angeles'); 中将时区设置为您的本地时间,同时使用 SELECT NOW() 检查您的数据库时区,如果是您的时区,则没有其他问题运行 SET GLOBAL time_zone = timezone;
  • 我有 mssql 而不是 mysql
  • 可能与moment-with-locales.js有关?我在其他 JavaScript 函数中使用它。
  • 尝试使用每种语言选择您的当地时间?看看你会得到什么。

标签: php sql-server ajax date


【解决方案1】:

考虑以下几点:

  • 将您的日期格式更改为 'd.m.Y H:i:s' 并使用下一条语句格式化您的日期:$Datum = $row['Datum']-&gt;format('d.m.Y H:i:s');'i' 是带前导零的分钟)。

  • 当您致电sqlsrv_connect() 时,请查看ReturnDatesAsStrings connection option。当此选项为true 时,日期/时间值将作为字符串返回。

【讨论】:

  • @Daniel 很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
  • 2015-09-29
相关资源
最近更新 更多