0

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

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;

现在我得到$year 中的 year$nmonth 中的 month , $ date中的 date和 $start 作为我的开始时间和 $end 作为结束时间。

$eve_start 应该看起来像 2012-06-01 01:00:00,当我单独打印它们时,我得到了适当的值来代替 $year、$nmonth、$date,但是当我打印 $eve_start 或 $eve_end 时我得到了仅打印年份部分。

同样在数据库中,插入为 0000-00-00 00:00:00 的日期时间的相应值必须是 2012-06-01 01:00:00。

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

4

4 回答 4

1

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

于 2013-01-04T07:16:06.530 回答
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 查询中获得这三个,那么我的上述解决方案将解决它。

如果它仍然没有解决问题,那么问题可能不在脚本中,而是在浏览器缓存中

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

于 2013-01-04T08:26:51.130 回答
0
  1. PHP 方面:我尝试了相同的代码,PHP 为我正确打印了日期时间。

    http://codepad.org/mKmNM9Yu

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

于 2013-01-04T13:27:10.627 回答
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 ));
于 2013-01-04T07:03:43.703 回答