PHP MySQL 如何使用 PHP 数学分解 10:30


php mysql how to break down 10:30 with php mathematings

我正在制作一个时间注册网站,但我不清楚我将如何处理一些数学。例:

$shiftstart = 10:30
$shiftend = 20:45

我不知道如何为此进行数学运算:我需要像这样分解它们: $shiftstart10,00 = $shifthours所以我将第一个分隔为数字,然后将最后一个数字分隔为双0,30 = $shiftminuts然后做$shiftminuts(0,30) * 1,666666666667,所以它 l = 0,50

另外,我将如何在函数中使用它?

另外,在我的 MySQL 表中将值存储为 10:30 - 21:35 int 或 varchar 的最佳方法是什么?

顺便说一句,我正在用PHP写作提前感谢!

关于时间数学:我更愿意创建一个从 DateTime http://php.net/manual/en/class.datetime.php 继承的类来封装您的逻辑。另外,我没有从这个问题中得到,10:30 与任何日期都有某种关系吗?如果是,您应该在 mysql 中使用日期时间/时间戳类型。如果没有,您可以使用 varchar 将 '10:30' 存储为字符串。

此外,您还有另一种选择:在几秒钟(分钟)内存储和操作。在这种情况下,您可以创建一个用于计算的值对象类,并在 mysql 中使用 int 作为类型。

夏令时呢?在这些日期中,10:30 会是 11:30 吗?还是还是10:30?你应该为此做好准备。请记住,在不同的国家/地区,它在不同的日期开始。这就是为什么我更喜欢使用内置的DateTime类。

对所有事情都使用分钟——包括计算和存储。仅在显示时转换为小时。如果您只关心一天内的时间(如图所示),则对所有值使用午夜偏移量。


编辑:

10:30 = (10*60) + 30。所有的数学都是使用分钟完成的,而不是试图将小时分割为浮点数。