首先,数据库中的一个条目:
我有一个输入表单,其中包含工作日的开始日期、开始和结束时间(以小时和分钟为单位)以及以分钟为单位的午休时间(在示例中 dato=date, modetime=start hour, modeminut=start minute, fyrtime =结束时间,fyrminut =结束分钟)。我需要做几个计算:
- 首先计算日期,开始小时和分钟到日期时间字段modetid。
- 对结束时间和分钟进行类似的计算,但如果结束时间小于开始时间,则将日期提前一天(我们称之为 fyrtid)
- 最后计算 fyrtid 和 modetid 减去暂停分钟数的差值。
是否可以直接在数据库中自动完成(如果是,如何),或者我是否需要一些 PHP 来完成(如果是,如何)?
我知道这是一项艰巨的任务,但我无法找到很多关于日期/时间计算的信息,而这些信息对我的知识水平很低。也欢迎任何有关 MySQL 或 PHP 中日期/时间计算的综合指南的链接。
最佳答案
我建议你使用 php 函数 time(),它基于 unix 时间戳(就像 Mysql 中的 UNIX_TIMESTAMP())unix 时间是这样的:1307387678。 在您的表格中使用日历作为开始时间和结束时间。 放置一个客户可以选择一天中的时间(小时和分钟)的设施,然后通过 strtotime() 将这些文件转换为 unix 时间戳,如下面的代码(将日期格式设置为 mm/dd/yyyy):
$startdate = strtotime ( "$_POST['calender_start'] $_POST['hour_start']:$_POST['minutes_start']" );
$enddate = strtotime ( "$_POST['calender_end'] $_POST['hour_end']:$_POST['minutes_end']" );
将您的数据库表字段更改为:cpr、startDate、endDate、pause、basked、......
它非常灵活。 当您想获取特殊记录时,您可以通过此 sql 获取行:
SELECT ...... FROM [TABLE_NAME] WHERE [VALUE] BETWEEN startDate AND endDate
希望对你有用
关于php - MySQL时间/日期计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509619/