javascript - 在 MySQL 中用 javascript 格式化日期时遇到问题

标签 javascript php mysql ajax date

我在 ajax 方面不太有经验,并且在从 MySQL 数据库格式化我的日期时遇到问题。

我尝试过使用 php date() 函数,但似乎无法使其正常工作。格式化日期的最佳方式是什么?

  $(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "../api/presentation/read.php",
        dataType: 'json',
        success: function(data) {
            var response="";
            for(var user in data){
                response += "<tr>"+
                "<td>"+data[user].date+"</td>"+
                "<td>"+data[user].title+"</td>"+
                "<td>"+data[user].speaker+"</td>"+
                "<td><a href='update.php?id="+data[user].id+"'>Edit</a> | <a href='#' onClick=Remove('"+data[user].id+"')>Remove</a> | <a href='#' onClick=Active('"+data[user].id+"')>Active</a></td>"+
                "</tr>";
            }
            $(response).appendTo($("#presentations"));
        }
    });
  });

我尝试过类似的事情

"<td><?php echo date("+data[user].date+",dd-mm); ?></td>"+

这给出了“+01am31am[00000000UTCThu, 01 Jan 1970 00:00:00 +0000].01am31UTC+”的输出,我怀疑这是因为没有为日期函数赋予任何值?

我希望输出采用 dd-mm HH-MM 格式,而不是 MySQL 日期时间格式“2019-10-29 10:00:00”

最佳答案

您以错误的方式混合 PHP 和 JavaScript。

首先,您必须知道,在浏览器上存在任何 HTML 或 JavaScript 之前,PHP 是在服务器端执行的。

也就是说,让我们再次阅读您的尝试:

“”

这里,脚本的 PHP 部分将在服务器端运行,并且 data[...] 变量不存在,而且它位于字符串内(在双引号之间)。由于该字符串不是有效日期,因此它将输出 start of unix epoch .

要解决这个问题,您需要在这里分离您的关注点。

第一种方式

  1. 由 ajax 调用的 php 脚本应以某种有效的日期格式返回日期。我建议使用 ISO8601 格式,因为 JavaScript 在使用 Date 对象时会自动解析此格式。
  2. 使用 JavaScript 将日期格式化为所需的输出格式。

第二种方式:

  1. 使用日期函数直接在 PHP 上转换日期,但是:您完全在 PHP 脚本上完成此操作。不要混合使用两种语言。它们是完全分离的,运行在不同的时刻,并且具有隔离的范围。

关于javascript - 在 MySQL 中用 javascript 格式化日期时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58581935/

相关文章:

javascript - 更新 Typescript/Javascript 中嵌套对象中的字段

php - 使用动态框架调整图像大小

mysql - 为什么 SQL NOT IN() 运算符不起作用?

php - 在mysql数据库中存储值时改变盐的值

php:在 html 中存储任意 html 元素的数据以将此数据传递给 HTML 页面上元素的 innerHTML 的最佳方法?

javascript - 在 localStorage 中导出数据以供以后重新导入

php - 为什么 mysql_fetch_field 会在此查询中耗尽内存?

php - 如何通过xml从分层导航中排除类别?

php - mysql_insert_id 只返回 0

javascript - 如何将多级 JavaScript 对象反序列化为 HTML 表单?