遇到格式不正确的数值

新手上路,请多包涵

我有一个将两个日期(开始和结束)传递给 PHP 脚本的表单,该脚本会将这些日期添加到数据库中。我在验证这一点时遇到问题。我不断收到以下错误

遇到格式不正确的数值

这是我使用以下内容的时候

date("d",$_GET['start_date']);

但是,当我按照许多网站的建议使用 strtotime() 函数时,我得到的 unix 时间戳日期为 1970 年 1 月 1 日。任何想法如何获得正确的日期?

原文由 Deviland 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 431
2 个回答

因为您将字符串作为第二个参数传递给 date 函数,它应该是一个整数。

字符串日期 ( 字符串 \(format \[, int \)timestamp = time() ] )

尝试 strtotime 它将 _任何英文文本日期时间描述解析为 Unix 时间戳_(整数):

 date("d", strtotime($_GET['start_date']));

原文由 DChaplin 发布,翻译遵循 CC BY-SA 3.0 许可协议

在我遇到错误的情况下:

遇到格式不正确的数值

当我的代码是这样的

if (date('y-m-d H:i:s') - $user_token['created_at'] < (60 * 60 * 24)) {
...
}

还有我的修复代码

date_default_timezone_set('Asia/Jakarta');
if (strtotime(date('y-m-d H:i:s')) - strtotime($user_token['created_at']) < (60 * 60 * 24)) {
...
}

原文由 Hana Hasanah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题