【问题标题】:WP: Blank date/time from php time()WP:来自 php time() 的空白日期/时间
【发布时间】:2015-09-28 13:35:44
【问题描述】:

这是一些奇怪的行为。在 WP 站点中,有这段代码可以用日期字符串更新表格。

奇怪的是,有时字符串 ($today) 会被添加到数据库中,而其他时候则不会(NULL 值)。

数据库是 MySQL。

另一个字段 (active) 每次都会正确更新。

        $today = date('Y-m-d',time());

        $upd=$my_db->prepare("UPDATE my_table SET active=1, my_date='".$today."' WHERE field_number=?");
        $upd->bindParam(1, $field_number, PDO::PARAM_INT);
        $upd->execute();

有人看过吗?我正在为此扯掉我的头发......我添加了一个小型业余解决方法,我不知道它是否会起作用:

date('Y-m-d',time()); 替换为date('Y-m-d', current_time( 'timestamp' ));,即使用WP 的时间戳功能...虽然这应该没有必要...

【问题讨论】:

  • 不知道这是否有帮助,但是您不必将 time() 传递给日期,如果第二个参数为空,则它会自动获取当前时间。 mysql中列的数据类型是什么?
  • 你真的必须在服务器端计算日期时间,而不是在数据库层吗?我的意思是,简单的有什么问题...UPDATE my_table SET active=1, my_date=CURDATE() WHERE field_number=?
  • @raina77ow 这确实是一个很好的建议。谢谢。我会检查一下。与此同时,你可以回答这个问题,我会在几天后回来选择一切是否正常。
  • 你能得到一个数据的例子吗?它工作的时间和不工作的时间? (当然不要忘记包含$field_number 的值。鉴于您所描述的,我看不出日期的东西是如何工作的,所以我们可能需要更多细节来弄清楚发生了什么...)
  • 没有具体的动机,要么日期被记录,要么为空。查询执行并设置了活动标志,但没有日期。除了这个查询之外,没有其他方法可以设置活动标志。

标签: php mysql wordpress


【解决方案1】:

在简单的日期时间计算中无需涉及 PHP 代码;数据库可以使用自己的stack of related functions 轻松管理它。只需将您的查询重写为...

UPDATE my_table SET active=1, my_date=CURDATE() WHERE field_number=?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多