PHP&MySQL日期

问题描述:

我试图在MySQL数据库“CURRENT_TIMESTAMP”类型的“timestamp”类型的字段中插入,其2012年2月26日上午10时04分34秒在我的本地和它的时间在我的电脑上 但事情是,我发现它2012-02-26 2时04分34秒在我的数据库 每次我插入我从我的本地时间 找到不同的价值观和ASLO如果我做PHP&MySQL日期

echo strtotime('now'); 

它打印相同的值“2012-02-26 02:04:34”

我该如何解决,因为我知道我正在按计划工作需要在特定时间执行操作

+1

你的服务器是在另一个时区运行。在http://www.php.net/date_default_timezone_set中将它设置为php到您的时区,并使用php所花费的时间。对于MySQL,请阅读http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html – Cheery 2012-02-26 08:14:18

+0

您正在使用什么查询来输入数据? – Starx 2012-02-26 08:16:17

这看起来像时区问题。检查他们在php.ini。或作为建议我爽快的注释,使用[docs here]

<?php 
date_default_timezone_set('America/Los_Angeles'); 
?> 

然而,你应该确保你使用正确的方法输入到数据库的日期和时间。有两种方法可以做到这一点。

  1. MYSQL:使用NOW()功能

    INSERT INTO table VALUES(data = '$data', date = now()); 
    
  2. PHP:使用time()功能

    $query = "INSERT INTO table VALUES(data = '$data', date = '".time()."');" 
    
+0

非常感谢,我使用date_default_timezone_set('Europe/Minsk'); 因为我是格林威治标准时间+2及其10:27 回声日期(“Y-m-d G:i:s”); //打印11:27对我来说这是一个错误的时区? – 2012-02-26 08:28:51

+0

在这种情况下,功劳归于@Cheery。我很高兴,它帮助你。 – Starx 2012-02-26 08:29:56

您需要在SQL查询中使用MySQL的NOW()函数来获取执行查询时的当前时间。

+0

请尝试正确回答。 'thingie'是什么意思? – Starx 2012-02-26 08:24:58

您可以使用此sql来设置您当前的时区。

set time_zone = <your timezone>; 

例如,

set time_zone = 'Asia/Calcutta'