【发布时间】:2014-01-03 15:42:59
【问题描述】:
我知道使用时间戳和其他东西可能有不同的方式,但我无法将小时数转换为人类可以理解的东西。我无权更改数据库中的任何内容。
有一列包含小时数,所以它可能是 134.37 小时。现在我无法显示它并告诉用户在 134.37 小时内会发生一些事情,我需要将其转换为月、日、小时、分钟、秒。
例如:
给定时间:23.33
期望的结果:0 个月,0 天,23 小时,19 分钟,48 秒(不关心秒数)
现在我需要几个月和几天,因为小时数可能很大。我开始使用的代码确实给了我小时、分钟和秒的数量,但我无法得到天和月。
$months = $days = $hour = $min = $sec = 0;
$decimalHours = 23.33;
//convert to hours
$hour = (int)$decimalHours;
$decimalHours -= $hour;
//convert to minutes and subtract minutes
$decimalHours *= 60;
$min = (int)$decimalHours;
$decimalHours -= $min;
$decimalHours = number_format($decimalHours, 10);
//convert to seconds
$decimalHours *= 60;
$sec = (int)$decimalHours;
echo $hour . ' hours, ' . $min . ' minutes, ' . $sec . ' seconds';
如果您知道可以实现此目的的功能或更简单的方法,请提供帮助。
【问题讨论】:
-
相对于原始日期的小时数?
-
没有用户定义。所以用户基本上选择天数/月数/小时/分钟数并转换为小时数并保存在数据库中
-
那么,一个月是几月? 28天还是2月29?为什么甚至是二月? 30、31?...此外,还有闰秒(但在你的情况下它们并不重要)
-
使用 小时 是我见过的最愚蠢的时间存储单位。
-
我知道,但我无能为力