【问题标题】:The date () function returns previous datedate() 函数返回上一个日期
【发布时间】:2020-08-15 08:29:08
【问题描述】:

我使用一个简单的脚本通过 cron 作业更新服务器端的当前日期,但它返回以前的日期。 windows日期是正确的。我试图在在线 php 编辑器中检查脚本并返回以前的日期。不知道问题出在哪里。

<?php
$current_date = date("Y/m/d");

$update_d = "UPDATE product SET c_date = '$current_date' ";
$run_d = mysqli_query($con, $update_d);

if ($run_d) {    
    echo "<script>alert('Current Date Updated Successfully!')</script>";
  }
?>

【问题讨论】:

  • 你在哪里设置变量$current_date?
  • 我将其设置为 $current_date = date("Y/m/d"):此脚本附有 cron 作业以每天更新它。以便在表之间进行数据操作...跨度>
  • 您意识到您正在更新整个数据库;这是你想做的吗?

标签: php mysql sql date sql-update


【解决方案1】:

为什么不在数据库中进行整个操作,而不是从您的代码中传递一个变量?在 MySQL 中,current_date 为您提供当前日期(没有时间组件),所以:

$update_d = "UPDATE product SET c_date = current_date";
$run_d = mysqli_query($update_d);

【讨论】:

  • 在mysql中怎么做?对不起,我是 php 和这个论坛的新手..
  • @MuhammadArif:这就是我在回答中所展示的。您可以将代码中的相应行替换为这两行。
  • 不明白你的意思,这将如何与数据库连接一起工作......如何将其写入数据库......
  • 这不起作用,因为缺少mysqli_query() 的连接。
【解决方案2】:

以下mysql代码

SELECT DATE_FORMAT(CURDATE(),'%Y/%m/%d');

给你结果2020/04/30

所以下面的代码会做你想做的事

<?php

$update_d = "UPDATE product SET c_date = DATE_FORMAT(CURDATE(),'%Y/%m/%d');";
$run_d = mysqli_query($con, $update_d);

if ($run_d) {    
    echo "<script>alert('Current Date Updated Successfully!')</script>";
  }
?>

【讨论】:

  • 您遇到了什么错误? - c_date 是什么类型的字段,虽然它是 varchar,因为你写了 $current_date = date("Y/m/d");这不是 mysql 中的有效日期格式
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
相关资源
最近更新 更多