【发布时间】:2011-09-24 11:24:25
【问题描述】:
首先,数据库中的一个条目:
我有一个输入表单,其中包含工作日的开始日期、开始和结束时间(以小时和分钟为单位)以及以分钟为单位的午休时间(在示例中 dato=date、modetime=start hour、modeminut=start minute、fyrtime =结束小时,fyrminut =结束分钟)。我需要做几个计算:
- 首先将日期、开始小时和分钟计算到日期时间字段 modetid 中。
- 对结束时间和分钟进行类似的计算,但如果结束时间小于开始时间,则将日期向上移动一天(我们称之为 fyrtid)
- 最后计算 fyrtid 和 modetid 之间的差减去暂停分钟数。
是否可以直接在数据库中自动完成(如果可以,如何)还是我需要一些 PHP 来完成(如果可以,如何)?
我知道这是一项艰巨的任务,但我无法找到太多关于日期/时间计算的信息,这对我的知识水平低下很有意义。任何指向 MySQL 或 PHP 中日期/时间计算综合指南的链接也将受到欢迎。
【问题讨论】:
-
您使用的是什么版本的 phpmyadmin?比我的好
-
我建议在 MySQL 中使用 datetime 而不是 date。这将允许您将所有数据存储在一个字段中,并使您的计算更加容易,因为 PHP 和 MySQL 有多种方法来计算以及针对完整日期时间的差异、加法、减法等。
-
同意 Mikecito mysql 有日期时间字段是有原因的。分别存储分钟和小时以及其他内容使得您无法使用 MySQL 日期时间函数,并且使 PHP 端计算更加复杂。
-
yes123:3.4.0 顺便说一句:任何人都可以真正看到图片中的任何东西。我感谢将图片放在帖子中的人,但我不确定它是否比链接的完整版本更好:dl.dropbox.com/u/1624676/mysql.png
-
好的,我在前进。如果我希望我的用户有单独的小时和分钟输入字段,我可以在保存到数据库时以某种方式组合这些字段吗?例如,我可以修改 dato 字段(以及如何修改),因此它包括小时和分钟: mysql_real_escape_string(YDFLValue($_SESSION['form']['item_10'])) 。 "', dato = '" (开始时间是 item_2,开始分钟是 item_3)