我正在制作一个时间注册网站,但我不清楚我将如何处理一些数学。例:
$shiftstart = 10:30
$shiftend = 20:45
我不知道如何为此进行数学运算:我需要像这样分解它们: $shiftstart
双10,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。所有的数学都是使用分钟完成的,而不是试图将小时分割为浮点数。