Php 将变量和字符串转换为日期时间格式

Php 将变量和字符串转换为日期时间格式,php,mysql,Php,Mysql,我目前拥有以下变量和格式化数据: 计划开始日期月=10 计划开始日期日期=1 计划开始日期年=2012年 计划开始时间=下午3:00 我需要将它们组合成一个“datetime”类型的变量“schedstart”插入到我的数据库中,我完全迷路了。我试图研究这些问题,并找到了使用mktime()或sttodate()的建议,但我找不到任何可靠的语法指南 如何使用PHP组合这些变量?您可以使用以下使用and函数的变量: select str_to_date( concat(Sched

我目前拥有以下变量和格式化数据:

  • 计划开始日期月=10
  • 计划开始日期日期=1
  • 计划开始日期年=2012年
  • 计划开始时间=下午3:00
我需要将它们组合成一个“datetime”类型的变量“schedstart”插入到我的数据库中,我完全迷路了。我试图研究这些问题,并找到了使用mktime()或sttodate()的建议,但我找不到任何可靠的语法指南


如何使用PHP组合这些变量?

您可以使用以下使用and函数的变量:

select 
  str_to_date(
    concat(Scheduling_StartDate_Year,'-',
          Scheduling_StartDate_Month, '-',
          Scheduling_StartDate_Day, ' ',
          Scheduling_StartTime), '%Y-%m-%d %h:%i') as yourDate
from yourtable

结果:

yourDate
2012-10-01 03:00:00

您可以使用以下使用和功能的选项:

select 
  str_to_date(
    concat(Scheduling_StartDate_Year,'-',
          Scheduling_StartDate_Month, '-',
          Scheduling_StartDate_Day, ' ',
          Scheduling_StartTime), '%Y-%m-%d %h:%i') as yourDate
from yourtable

结果:

yourDate
2012-10-01 03:00:00

可以考虑在PHP上以适当的格式连接:

<?php

$dateString = $Scheduling_StartDate_Month."/".$Scheduling_StartDate_Day."/".$Scheduling_StartDate_Year." ".$Scheduling_StartTime;
$result = mysql_query("SELECT STR_TO_DATE('".$dateString."', '%m/%d/%Y %h:%i %p')");

?>

<代码> 您可以考虑在PHP上以适当的格式连接:

<?php

$dateString = $Scheduling_StartDate_Month."/".$Scheduling_StartDate_Day."/".$Scheduling_StartDate_Year." ".$Scheduling_StartTime;
$result = mysql_query("SELECT STR_TO_DATE('".$dateString."', '%m/%d/%Y %h:%i %p')");

?>

我不知道你到底为什么要在SQL中这样做,而在PHP中这样做非常容易

(通常最好尽可能少地对SQL server施加压力,因为这通常是瓶颈,另外,在SQL中使用
CONCAT
拼凑起来要难看得多)

MySQL日期本质上只是以特定方式格式化的字符串。e、 g.
2008-12-3123:59:59

因此,只需将不同的日期片段组合在一起,使它们看起来像那样,然后在SQL查询中随意使用(用单引号括起来)

有关更多详细信息,请参阅

最简单的方法可能如下所示:

$mysql_formatted_date = date('Y-m-d H:i:s', strtotime("Scheduling_StartDate_Year-$Scheduling_StartDate_Month-$Scheduling_StartDate_Day $Scheduling_StartTime"));
i、 例如,让
strotime
解析出您的日期并处理将am/pm转换为24小时时间的问题,然后使用
date
强制将其转换为正确的格式

mysql_query("SELECT '$mysql_formatted_date' ...");

我不知道你到底为什么要在SQL中这样做,而在PHP中这样做非常容易

(通常最好尽可能少地对SQL server施加压力,因为这通常是瓶颈,另外,在SQL中使用
CONCAT
拼凑起来要难看得多)

MySQL日期本质上只是以特定方式格式化的字符串。e、 g.
2008-12-3123:59:59

因此,只需将不同的日期片段组合在一起,使它们看起来像那样,然后在SQL查询中随意使用(用单引号括起来)

有关更多详细信息,请参阅

最简单的方法可能如下所示:

$mysql_formatted_date = date('Y-m-d H:i:s', strtotime("Scheduling_StartDate_Year-$Scheduling_StartDate_Month-$Scheduling_StartDate_Day $Scheduling_StartTime"));
i、 例如,让
strotime
解析出您的日期并处理将am/pm转换为24小时时间的问题,然后使用
date
强制将其转换为正确的格式

mysql_query("SELECT '$mysql_formatted_date' ...");

在php中有什么方法可以做到这一点吗?在php中有什么方法可以做到这一点吗?