我将如何使用 php 将数字转换为时间戳(特别是分钟)?
我在我的数据库中使用时间戳,00:01:30
例如00:00:30
但是我写这篇文章的人有一个习惯(并要求)他们只能输入30
or60
或75
。就我而言,我需要以某种方式将它们分别转换为00:00:30
,00:01:00
和00:01:15
。
我该怎么做呢?我知道strtotime()
,date()
但我似乎无法弄清楚如何获取数字并转换它......
谢谢
我将如何使用 php 将数字转换为时间戳(特别是分钟)?
我在我的数据库中使用时间戳,00:01:30
例如00:00:30
但是我写这篇文章的人有一个习惯(并要求)他们只能输入30
or60
或75
。就我而言,我需要以某种方式将它们分别转换为00:00:30
,00:01:00
和00:01:15
。
我该怎么做呢?我知道strtotime()
,date()
但我似乎无法弄清楚如何获取数字并转换它......
谢谢
您可以使用一种技巧轻松地将此类 int 转换为时间:
$time = gmdate('H:i:s', 75); // 00:01:15
这是有效的,因为 gmdate 将始终从 转换秒数1970-01-01 00:00:00
,因此它将为 86400 以下的所有整数产生正确的结果
如果输入只有几分钟,而不是处理 strtotime,您可能只想手动将其转换为字符串。例如:
<?php
$minutes = 75;
$timestring = sprintf('%2d:%2d:%2d', floor($minutes/60), ($minutes%60), 0);
echo 'Time: '.$timestring;
?>
这将打印出来01:15:00
。从您的问题来看,分钟数似乎在最后一列,但我正在以更标准的格式展示我的解决方案。
编辑:包括结果并使用更合适的示例:
我建议使用mktime。例如,如果您知道可以输入的开始时间,然后只需在分钟列中添加 30、60 或 90。
如果您的 PHP 足够新(5.3.x),请使用 DateTime 类,然后从一天的开始创建一个时间,然后添加 75 分钟,或者甚至使用内置格式从过去的时间转换。