正确显示MySQL日期

时间:2018-11-19 20:06:50

标签: mysql node.js database ejs

所以我正在使用这段代码

let obj = {print: rows}
    res.render('../views/pages/data', obj)

使用此代码将数据呈现在ejs文件中

<table>
    <% print.forEach(function (student) { %>

        <tr class="table-info">
        <td><%= student.firstName %></td>
        <td><%= student.lastName %></td>

        <td><%= student.building %></td>
        <td><%= student.room %></td>
        <td><%= student.checkIn %></td>
        <td><%= student.checkOut %></td>


        </tr>
        <% }) %>

,但是checkIn和checkOut日期的显示方式与MySQL中不同。 在数据库中,它仅显示数据和时间,但是当我将其显示在ejs文件上时,它将显示checkIn和checkOut

Mon Nov 19 2018 12:56:09 GMT-0500 (Eastern Standard Time)   Mon Nov 19 2018 12:56:47 GMT-0500 (Eastern Standard Time)

如何摆脱GMT-500(东部标准时间)?

1 个答案:

答案 0 :(得分:1)

使用toUTCString()摆脱-0500 (Eastern Standard Time),但GMT仍会存在。要摆脱整个GMT-0500 (Eastern Standard Time)字符串,您需要执行以下操作:

today.toUTCString().split('GMT')[0];

最佳做法是,在服务器端将DateTime转换为String格式,或者至少在UI上呈现之前,至少将其嵌入JavaScript。

如果要在客户端(HTML)端执行此操作,则需要使用JavaScript字符串操作函数。因此,在您的情况下,应该是这样的:

<table>
    <% print.forEach(function (student) { %>

        <tr class="table-info">
        <td><%= student.firstName %></td>
        <td><%= student.lastName %></td>

        <td><%= student.building %></td>
        <td><%= student.room %></td>
        <td><%= student.checkIn.split('GMT')[0] %></td>
        <td><%= student.checkOut.split('GMT')[0] %></td>


        </tr>
        <% }) %>

我不确定这是否是实现所需目标的最佳方法,但是如果您不想更改代码,那么上面的代码可能是解决问题的最接近的方法。