我以为问题首先是与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分。理想情况下,我根本不希望记录/返回时间戳。只有日期。我是否遗漏了如何正确返回日期值?谢谢
您必须检查什么是您的服务器的区域,通常它是由于不同的区域和时间戳使用的服务器。
这是由于不同的时区,您的本地是英国的时间,但您的服务器可能是其他时区。我建议您可以使用moment-timezone并设置时区,如
import moment from 'moment-timezone'
const todayDate = moment.tz(Date.now(), 'Asia/Kolkata').utcOffset('+05:30').format('DD-MM-YYYY')
如果您的服务器在其他时区,这将有所帮助。