1

我将如何使用 php 将数字转换为时间戳(特别是分钟)?

我在我的数据库中使用时间戳,00:01:30例如00:00:30

但是我写这篇文章的人有一个习惯(并要求)他们只能输入30or6075。就我而言,我需要以某种方式将它们分别转换为00:00:30,00:01:0000:01:15

我该怎么做呢?我知道strtotime()date()但我似乎无法弄清楚如何获取数字并转换它......

谢谢

4

4 回答 4

3

您可以使用一种技巧轻松地将此类 int 转换为时间:

$time = gmdate('H:i:s', 75); // 00:01:15

这是有效的,因为 gmdate 将始终从 转换秒数1970-01-01 00:00:00,因此它将为 86400 以下的所有整数产生正确的结果

于 2012-11-01T16:23:43.450 回答
2

如果输入只有几分钟,而不是处理 strtotime,您可能只想手动将其转换为字符串。例如:

<?php
  $minutes = 75;
  $timestring = sprintf('%2d:%2d:%2d', floor($minutes/60), ($minutes%60), 0);
  echo 'Time: '.$timestring;
?>

这将打印出来01:15:00。从您的问题来看,分钟数似乎在最后一列,但我正在以更标准的格式展示我的解决方案。

编辑:包括结果并使用更合适的示例

于 2012-11-01T16:21:59.703 回答
0

我建议使用mktime。例如,如果您知道可以输入的开始时间,然后只需在分钟列中添加 30、60 或 90。

于 2012-11-01T16:22:38.743 回答
0

如果您的 PHP 足够新(5.3.x),请使用 DateTime 类,然后从一天的开始创建一个时间,然后添加 75 分钟,或者甚至使用内置格式从过去的时间转换。

于 2012-11-02T15:03:43.597 回答