MySQL时间/日期计算

时间:2011-06-28 16:12:56

标签: php mysql sql date time

首先,数据库中的一个条目:

enter image description here

我有一个输入表格,用于记录工作日的开始日期,开始和结束时间(以小时和分钟为单位)加上午餐时间(以示例为单位dato = date,modetime = start hour,modeminut = start minute,fyrtime) =结束时间,fyrminut =结束分钟)。我需要做几个计算:

  • 首先将日期,开始时间和分钟计算到日期时间字段modetid。
  • 使用结束时间和分钟进行类似的计算,但如果结束时间小于开始时间,则将日期提前一天(让我们称之为fyrtid)
  • 最后计算fyrtid和modetid之间的差异减去暂停时间。

可以直接在数据库中自动完成(如果是,如何)或者我需要一些PHP来完成它(如果是的话,又如何)?

我知道这是一个很高的订单,但我无法找到有关日期/时间计算的大量信息,因为我的知识水平很低。任何关于MySQL或PHP日期/时间计算综合指南的链接也将受到极大的欢迎。

1 个答案:

答案 0 :(得分:0)

我建议你通过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 

我希望它对你有用