mysql表中的空日期和时间

时间:2013-01-04 07:01:02

标签: php xml datetime curl google-calendar-api

我在日期时间列中插入日期和时间,我只是为我手动分配它的日期和时间获取值,使日期时间与MySQL日期时间语法匹配我做了类似的事情: / p>

if($start==NULL && $end==NULL){    
    $start = '01:00:00';
    $end = '02:00:00';    
}

$eve_start = $year."-".$nmonth."-".$date." ".$start;
$eve_end = $year."-".$nmonth."-".$date." ".$end;

现在我的年度年度月份$ nmonth 约会日期,$ start作为我的开始时间和$ end作为结束时间。

$ eve_start应该看起来像2012-06-01 01:00:00,当我单独打印时,我也会得到正确的值代替$ year,$ nmonth,$ date,但是当我打印$ eve_start或$时eve_end我只打印了一年的部分。

另外在数据库中插入的日期时间的对应值为00:00:00,其中必须是2012-06-01 01:00:00。

我从XML标签获取这些值,我使用XML格式和CURL导入Google日历事件。 现在,对于简单事件,我会得到开始和结束日期。但是当它是一个全天活动时我没有时间在xml文件中,我只能得到开始和结束日期。现在我正在做的是每当全天事件到来时我检查开始和结束时间,如果它是null我为它们分配静态值。我在我的数据库中插入简单事件没有任何问题,只有概率是全天事件

4 个答案:

答案 0 :(得分:1)

您应该使用mktime()以时间戳格式存储时间。并使用date()函数检索它。

答案 1 :(得分:0)

您应该使用date()函数

格式化它
$start_dt = date("Y-m-d H:i:s", strtotime($eve_start));
$end_dt = date("Y-m-d H:i:s", strtotime($eve_end ));

答案 2 :(得分:0)

请看MySQL DATE_FORMAT

MySQL将默认日期时间存储为yyyy:mm:dd h:i:s。

下面的代码将帮助您解决问题。

SELECT
      DATE_FORMAT(YOUR_DATE_FIELD,'%Y') AS YOUR_YEAR,
      DATE_FORMAT(YOUR_DATE_FIELD,'%m') AS YOUR_MONTH,
      DATE_FORMAT(YOUR_DATE_FIELD,'%d') AS YOUR_DAY
from your_table

并在MySQL中存储日期时间字段,您只需添加NOW()mysql函数即可存储当前日期和时间。

INSERT INTO table ( data , date ) VALUES('".$date."',NOW() );

您可以编辑您的问题并添加有关问题的更多详细信息。

  1. 来自三个变量的来源。
  2. 你赋予这三个人的价值。
  3. 你是从MySQL查询得到这三个,如果是,那么我的上述解决方案将解决它。
  4. 如果仍然没有解决问题,那么问题可能不在脚本中,而是在浏览器缓存

    运行代码并查看有用的结果。

答案 3 :(得分:0)

  1. PHP方面:我尝试了相同的代码,PHP正确地为我打印了日期时间。

    http://codepad.org/mKmNM9Yu

  2. Mysql方面:确保列类型为' datetime '。并确保您已在插入查询中正确分配了日期变量。