Php MySQL时间/日期计算

Php MySQL时间/日期计算,php,mysql,sql,date,time,Php,Mysql,Sql,Date,Time,首先,数据库中的一个条目: 我有一个输入表单,可以写工作日的开始日期、开始和结束时间(以小时和分钟为单位)以及午餐休息时间(以分钟为单位)(在示例中,dato=date,modetime=start hour,modeminut=start MINUT,fyrtime=end hour,fyrminut=end MINUT)。我需要做几个计算: 首先将日期、开始时间和分钟计算到datetime字段modetid中 对结束时间和分钟进行类似的计算,但如果结束时间小于开始时间,则将日期上移一天(

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

我有一个输入表单,可以写工作日的开始日期、开始和结束时间(以小时和分钟为单位)以及午餐休息时间(以分钟为单位)(在示例中,dato=date,modetime=start hour,modeminut=start MINUT,fyrtime=end hour,fyrminut=end MINUT)。我需要做几个计算:

  • 首先将日期、开始时间和分钟计算到datetime字段modetid中
  • 对结束时间和分钟进行类似的计算,但如果结束时间小于开始时间,则将日期上移一天(我们称之为fyrtid)
  • 最后计算fyrtid和modetid之间的差值减去暂停分钟数
它可以直接在数据库中自动完成(如果是,如何完成),还是需要一些PHP来完成(如果是,如何完成)


我知道这是一项艰巨的任务,但由于我的知识水平较低,我一直无法找到很多关于日期/时间计算的信息。任何指向MySQL或PHP中日期/时间计算的全面指南的链接都将受到欢迎。

我建议您使用PHP函数time(),它基于unix时间戳(如MySQL中的unix_timestamp()),unix时间如下所示:1307387678。 在表格中使用日历作为开始时间和结束时间。 将客户端可以选择的时间(小时和分钟)放入工具中,然后通过strotime()将这些文件转换为unix时间戳,如以下代码所示(将日期格式设置为mm/dd/yyyy):

将数据库表字段更改为:cpr、startDate、endDate、pause、basked等

它很灵活。 当您想要获取特殊记录时,您可以通过以下sql获取行:

SELECT ...... FROM [TABLE_NAME] WHERE [VALUE] BETWEEN startDate AND endDate 

我希望它对您有用

您使用的是什么版本的phpmyadmin?它比我的要好,我建议在MySQL中使用datetime而不是date。这将允许您将所有数据存储在一个字段中,并使您的计算变得更加容易,因为PHP和MySQL有多种方法可以计算和比较完整的日期时间,并可以进行加减等操作。同意Mikecito的说法,MySQL有日期时间字段是有原因的。将分钟、小时和其他内容分开存储会使您无法使用MySQL datetime函数,也会使PHP端的计算更加复杂。是123:3.4.0顺便问一下:有人真的能看到图片中的任何内容吗。我很感激任何人把这张照片放在帖子里,但我不确定它是否比链接的完整版本好:好吧,慢慢来。如果我想让我的用户有单独的小时和分钟输入字段,我可以在保存到数据库时以某种方式合并这些字段吗?例如,我可以修改dato字段(以及如何修改),使其包含小时和分钟:mysql_real_escape_string(YDFLValue($_SESSION['form']['item_10'])。“,dato=”(开始时间是第2项,开始分钟是第3项)如果我理解正确的话,看起来应该是应该走的路。但正如我所说,我对PHP和MySQL几乎一无所知。我正在尝试破解一个自动表单生成器Rapidweaver,因此我可能在所有地方都犯了语法错误……并且把东西放在了错误的地方。以下是我的建议:
SELECT ...... FROM [TABLE_NAME] WHERE [VALUE] BETWEEN startDate AND endDate