提问者:小点点

从数据库返回到前端的日期/时间错误


我以为问题首先是与Postgres有关,但后来我发现不是。当我检查终端时,显示的是正确的日期。又名2021-04-15。但是,当我使用相同的查询将其返回到我的前端时,日期和时间是错误的。(终端中没有时间戳,但返回结果前端中有一个。这是我返回前端的代码。

//get staff records
app.get("/admin/staff/display", async (req, res) => {
    try {
        const allStaffDetails = await pool.query("SELECT * FROM staff ORDER BY staff_id");
        res.json(allStaffDetails.rows);
    } catch (error) {
        console.error(error.message);
    }
});

我的前端代码如下。

    async function getStaff() {
        const res = await fetch("http://localhost:5000/admin/staff/display");
        const staffArray = await res.json();
        setStaff(staffArray);
    }

    useEffect(() => {
        getStaff();
    }, []);

    return (
        <Fragment>
            <Sidebar />
            {""}

            <div className="container">
                <div className="form-style text-center rcorners">
                    <h2>Staff</h2>
                    <AddStaff />
                    <table className="table mt-5">
                        <thead>
                            <tr>
                                <th scope="col">First Name</th>
                                <th scope="col">Last Name</th>
                                <th scope="col">PhoneNumber</th>
                                <th scope="col">Date</th>
                                <th scope="col">Edit</th>
                                <th scope="col">Delete</th>
                            </tr>
                        </thead>
                        <tbody>
                            {
                                staff.map(staff => (
                                    <tr key={staff.staff_id}>
                                        <td>{staff.firstname}</td>
                                        <td>{staff.lastname}</td>
                                        <td>{staff.phonenumber}</td>
                                        <td>{staff.date}</td>
                                        <td>

我的前端正在以以下格式返回数据-2021-04-14T23:00:00.000Z。它目前是英国的第15届,它(在撰写本报告时)和下午15点17分。理想情况下,我根本不希望记录/返回时间戳。只有日期。我是否遗漏了如何正确返回日期值?谢谢


共1个答案

匿名用户

您必须检查什么是您的服务器的区域,通常它是由于不同的区域和时间戳使用的服务器。

这是由于不同的时区,您的本地是英国的时间,但您的服务器可能是其他时区。我建议您可以使用moment-timezone并设置时区,如

import moment from 'moment-timezone'
const todayDate = moment.tz(Date.now(), 'Asia/Kolkata').utcOffset('+05:30').format('DD-MM-YYYY')

如果您的服务器在其他时区,这将有所帮助。