已解决:前端页面和数据库时间不一致

 *   ┏┓   ┏┓+ +
 *  ┏┛┻━━━┛┻┓ + +
 *  ┃       ┃
 *  ┃   ━   ┃ ++ + + +
 *  ████━████ ┃+
 *  ┃       ┃ +
 *  ┃   ┻   ┃
 *  ┃       ┃ + +
 *  ┗━┓   ┏━┛
 *    ┃   ┃
 *    ┃   ┃ + + + +
 *    ┃   ┃
 *    ┃   ┃ +  神兽保佑
 *    ┃   ┃    代码无bug
 *    ┃   ┃  +
 *    ┃    ┗━━━┓ + +
 *    ┃        ┣┓
 *    ┃        ┏┛
 *    ┗┓┓┏━┳┓┏┛ + + + +
 *     ┃┫┫ ┃┫┫
 *     ┗┻┛ ┗┻┛+ + + +

原因:由于前后端时区设置不一致导致的。具体来说,后端返回的时间数据和数据库中的时间数据相差8个小时是因为:

  1. 默认使用 UTC 时区

    • Java 中的日期和时间默认使用 UTC(协调世界时)进行存储和处理。
  2. 前端展示的时间与实际时间不同步

    • 如果你在没有指定时区的情况下在前端显示这些时间,它们可能会与用户所在时区的实际时间相差8小时。
  3. Spring Jackson 序列化和反序列化时区问题

    • Spring 在将日期和时间转换为 JSON 或从 JSON 转换回来时,默认使用的时区可能与你期望的时不匹配。
  4. 解决方案:配置 Spring 使用正确的时区

    • 添加 spring.jackson.time-zone=GMT+8 配置,告诉 Spring 在序列化或反序列化日期和时间时始终使用 GMT+8 时区。

        yml配置

spring:
  jackson:
    time-zone: GMT+8

        properties配置

spring.jackson.time-zone=GMT+8

通过这个配置,你可以确保前后端之间的时间一致,并且能够正确地显示给用户。这有助于提高应用程序的用户体验,并避免因时间差异而引发的问题。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现网站前端的MySQL数据库登录注册功能,需要使用后端编程语言如PHP、Python等,以及前端页面设计技术如HTML、CSS等。 以下是一个基本的PHP登录注册功能实现示例: 1. 创建数据库 在MySQL数据库中创建一个名为`users`的表,包含以下字段: ``` id INT(11) AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(255) NOT NULL ``` 2. 注册页面 创建一个注册页面`register.php`,包含以下表单: ``` <form action="register.php" method="post"> <label for="username">Username:</label> <input type="text" name="username" id="username"> <br> <label for="password">Password:</label> <input type="password" name="password" id="password"> <br> <input type="submit" value="Register"> </form> ``` 3. 注册处理 在`register.php`中添加以下PHP代码,用于将用户输入的用户名和密码存入MySQL数据库中: ``` <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $conn = mysqli_connect('localhost', 'username', 'password', 'database_name'); $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; if (mysqli_query($conn, $sql)) { echo "Registration successful"; } else { echo "Error: " . mysqli_error($conn); } mysqli_close($conn); } ?> ``` 4. 登录页面 创建一个登录页面`login.php`,包含以下表单: ``` <form action="login.php" method="post"> <label for="username">Username:</label> <input type="text" name="username" id="username"> <br> <label for="password">Password:</label> <input type="password" name="password" id="password"> <br> <input type="submit" value="Login"> </form> ``` 5. 登录处理 在`login.php`中添加以下PHP代码,用于验证用户输入的用户名和密码是否与MySQL数据库中存储的一致: ``` <?php session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username']; $password = $_POST['password']; $conn = mysqli_connect('localhost', 'username', 'password', 'database_name'); $sql = "SELECT * FROM users WHERE username='$username'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) === 1) { $row = mysqli_fetch_assoc($result); if (password_verify($password, $row['password'])) { $_SESSION['username'] = $username; header('Location: home.php'); } else { echo "Invalid password"; } } else { echo "Invalid username"; } mysqli_close($conn); } ?> ``` 6. 首页 创建一个首页`home.php`,用于显示用户已登录的信息: ``` <?php session_start(); if (!isset($_SESSION['username'])) { header('Location: login.php'); } echo "Welcome, " . $_SESSION['username']; ?> ``` 以上是一个基本的PHP实现MySQL数据库登录注册功能的示例,你可以根据自己的需求进行修改和扩展。同时,需要注意安全性问题,如密码加密存储、SQL注入攻击等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值