php mysql如何使用php mathematings分解10:30

php mysql如何使用php mathematings分解10:30,php,mysql,Php,Mysql,我正在做一个时间注册网站,但我不清楚我将如何进行一些数学。 例如: 我不知道该如何计算: 我需要像这样分解它们: $shiftstartdouble10,00=$shifthours因此我将第一个数字分隔为数字,然后将最后一个数字分隔为double0,30=$shiftminutes 然后执行$shiftminutes(0,30)*16667,这样它就等于0,50 我如何在函数中使用它呢 另外,在myMySQL表中,将值存储为10:30-21:35int或varchar的最佳方法是什么 顺便说一

我正在做一个时间注册网站,但我不清楚我将如何进行一些数学。 例如:

我不知道该如何计算: 我需要像这样分解它们:
$shiftstart
double
10,00=$shifthours
因此我将第一个数字分隔为数字,然后将最后一个数字分隔为double
0,30=$shiftminutes
然后执行
$shiftminutes(0,30)*16667
,这样它就等于
0,50

我如何在函数中使用它呢

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

顺便说一句,我是用php写的
提前谢谢

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


编辑:


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

关于时间数学:我更喜欢创建一个从DateTime继承的类,它封装了您的逻辑。 还有,我还没有从这个问题中得到答案,10:30和任何约会有什么关系吗? 如果是,您应该在mysql中使用datetime/timestamp类型。 如果没有,可以使用varchar将“10:30”存储为字符串

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


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

我能让你详细说明一下吗?谢谢ethrbunny和alex13,你帮了我很大的忙:D
$shiftstart = 10:30
$shiftend = 20:45