【问题标题】:handling time format in mysql and php [duplicate]在mysql和php中处理时间格式[重复]
【发布时间】:2014-05-24 16:02:37
【问题描述】:

我有一个 mysql 表,其中包含一个名为 time 并具有“时间”格式的字段。我手动将第一行添加到表格中,它的时间是“14:55:00”。

现在,在我的 PHP 页面中,用户将填写一个表单然后提交。在这里,我希望我的 php 将最后一个寄存器的时间值分配给像 $time 这样的变量(我可以这样做)。然后我想要这个:

$time=$time + 5 minutes

我该怎么做?

【问题讨论】:

  • 你已经做了什么?
  • $time = strtotime('+5 minutes')

标签: php mysql time format


【解决方案1】:

如果你想更新你的sql表,可以使用DATE_ADD函数:

UPDATE table SET time = DATE_ADD(time, INTERVAL 5 MINUTE)

如果您想在 PHP 中为时间戳添加 5 分钟,可以使用函数 strtotime:

$time = $time + strtotime("+5 minutes");

如果您的时间是一个字符串(即格式为 14:55:00),您可以执行以下操作:

$timeAsString = "14:55:00";
$timestamp = strtotime("+5 minutes", strtotime($timeAsString));
$time = date("H:i:s", $timestamp);

echo $time;

【讨论】:

  • 我这样做了,但是...首先echo $time; -> 输出:14:55:00 然后我按照你说的做了,结果是:1400948613 编辑:我需要第二个你说。
  • tha 返回错误 500。正如我在第一篇文章中所说,我从数据库中获取最后一次。而在数据库中,它的数据类型是“时间”。所以我认为它不是字符串。我对吗?谢谢。
  • 14:55:00 变为 06:46:36。这是为什么呢?
  • 我更新了。现在可以使用了。
【解决方案2】:
 $dateMinutes= date("i")+5; 

并使用 php 中的 make time 函数

【讨论】:

  • 这行不通,因为你可以获得分钟 >= 60
  • mktime 处理得很好:如果分钟 = 65,则 date('i') 变为等于 5,并且小时增加。
  • 是的,但如果时间已经 > 55(即:当 date('i') 返回已经 57 时)
猜你喜欢
  • 1970-01-01
  • 2020-12-22
  • 2013-08-12
  • 2013-08-29
  • 1970-01-01
  • 2013-10-05
  • 2011-06-27
  • 2016-10-17
  • 1970-01-01
相关资源
最近更新 更多