【问题标题】:php date() isn't working when adding days and saving into DB添加天数并保存到数据库时,php date() 不起作用
【发布时间】:2012-07-23 15:48:01
【问题描述】:

我正在尝试创建一个日期并添加 3 天,然后将其保存到具有日期字段类型的 mysql 数据库中。

这就是我所拥有的。

date('Y-m-d', strtotime("+3 days"));

然后我插入数据库。我最终得到的是 0000-00-00 而不是日期,但如果我将它回显出来,它看起来是正确的。

但是,如果我使用

date('Y-m-d')

然后将其插入数据库,它工作正常。

任何帮助将不胜感激!

编辑

我发现在进行更多调试时我的值没有被传递给我的查询,我之前没有发现这个问题,因为我使用的是内置的 CMS 函数并且它没有给我一个错误。

【问题讨论】:

  • 这需要基本的调试。 date() 操作的结果是什么? strtotime() 操作的结果是什么?
  • strtotime("+3 days") 的输出你得到了什么?
  • Works fine for me. 你能介绍一下上下文吗?
  • 我今天使用strtotime()date()。我也使用strtotime('+ 3 days') 获得今天+ 3 天。 date('Y-m-d', strtotime("+3 days")) Echoed 给了我同样的 strtotime('+ 3 days')`。
  • 您在问题中发布的代码以及问题本身与您的问题无关。这确实需要首先进行基本调试。如果您没有收到任何错误并且您不确定是否可以做一些事情来改善您的情况: 1.) 启用最高级别的错误报告以用于调试/开发目的。 2.) 检查函数的返回值是否有错误条件,并自己报告这些错误。 3.) 验证您用于函数的每个参数是否包含有效值并且毕竟是必需的,并且没有缺少重要参数。

标签: php date strtotime


【解决方案1】:

检查事项:

  1. date('Y-m-d'date('Y-m-d', strtotime('+3 days')) 的输出(回显它们)。
  2. 显示您要插入此值的查询字符串,包括执行前查询的文件版本
  3. 考虑为此使用纯 MySQL 操作,例如

    INSERT INTO ... VALUES (now() + INTERVAL 3 DAY)

相反,从 native->string->native->etc...节省了一些往返...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2014-04-22
    • 2016-10-31
    相关资源
    最近更新 更多