2013-05-13 79 views
0

我已经创建了一个计划使用php和jquery在我的应用程序。我有一个部分,用户输入开始日期和开始时间,另一个部分输入结束日期和结束时间。该字段都为单独的,就像这样:插入两个独立的字段到一个记录php mysql

<input type="text" name="dateFrom" id="dateFrom"> <!-- datepicker plugin --> 
<input type="text" name="time_from" id="timeFrom"> <!-- timepicker plugin --> 

<input type="text" name="dateTo" id="dateTo"> <!-- datepicker plugin --> 
<input type="text" name="time_to" id="timeTo"> <!-- timepicker plugin --> 

我想知道的是,一旦用户输入上述信息,以及将数据提交,而不是在表中创建单独列到数据库中,有无论如何将dateFromtimeFrom字段插入到一个名为start_time的数据库列中作为UNIX时间戳,并且对于dateTo & timeTo字段也是如此。

任何人都可以给我任何想法,我会如何做到这一点?

+2

连接是你的朋友。 – 2013-05-13 15:07:04

回答

0

可以使用strtotime组合日期和时间,以在插入之前获取UNIX时间戳。

$dateFrom = "2013-05-13"; 
$timeFrom = "13:52"; 

$fromStamp = strtotime("$dateFrom $timeFrom"); 

附注:m/d/yd-m-y格式

日期是由寻找的各种组件之间的分隔符消除歧义:如果隔板是斜线(/),则美国m/d/y假设;而如果分隔符是破折号(-)或点(.),则假定欧洲d-m-y格式。

为避免潜在的歧义,最好在可能的情况下使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()

+0

你已经快了一点。是的只是尝试把你的输入数据转换成这种格式“2013-05-13 00:01”,并将它存储在一个DateTime列中 – Ello 2013-05-13 15:09:27

0

喜欢的东西

INSERT INTO yourtable (start_time, end_time) 
VALUES (UNIX_TIMESTAMP('$dateFrom $timeFrom'), UNIX_TIMESTAMP('$dateTo $timeTo')) 

会做,假设你的$ dateFrom是yyyy-mm-dd,和$ timeFrom是hh:mm:ss。当然,如果您直接将表单字段填充到查询中,则会受到SQL注入攻击,但这只是为了向您展示一种您应该这样做的方式。

+0

我唯一犹豫发布这种类型的解决方案是注入的可能性。 – Kermit 2013-05-13 15:10:54

+0

使用参数化查询,php会照顾你的问题。但你仍然不应该直接接受用户的日期,或者有人会试图通过一些堕落的“9999-99-99 99:99:99”或其他任何事情。 – 2013-05-13 15:13:31

相关问题