date_default_timezone_set('Etc/GMT');
$now = mktime(date('H'),date('i'),date('s'),date('m'),date('d'),date('Y'))+$timezone*60*60*1000;
$site_date = date("g:i A(D)",$now);其中timezone是时差。为何我这么用,获取时间不对啊。。请高手帮忙解决。

解决方案 »

  1.   

    //設定時區.主要用來修正8小時時差
    Date_Default_Timezone_Set("Asia/Taipei");
      

  2.   

    用法:
    Echo Fun::now('Y-m-d H:i:s',time());//2012-10-30 00:13:40
    Echo Fun::now('Y-m-d H:i:s');//2012-10-30 00:13:40
    Echo Fun::now();//1351527292
    Echo time();//1351527292
    Echo Getdate()[0];//1351527292
    var_dump(Getdate());
    Array(size=11)
      'seconds' => int 25
      'minutes' => int 15
      'hours' => int 0
      'mday' => int 30
      'wday' => int 2
      'mon' => int 10
      'year' => int 2012
      'yday' => int 303
      'weekday' => string 'Tuesday' (length=7)
      'month' => string 'October' (length=7)
      0 => int 1351527325
    /**/
    Function now($x='',$y=0){
    IF(!Is_numeric($y) Or $y==0){$y=time();}
    IF($x!=''){
    $x=date($x,$y);
    }Else{
    $x=date($y);
    }
    Return $x;
    }
      

  3.   

    $t = time();
    echo date('北京时间 Y-m-d H:i:s', $t), '<br>';
    date_default_timezone_set('Etc/GMT');
    echo date('格林威治时间 Y-m-d H:i:s', $t), '<br>';for($i=1; $i<=12; $i++) {
      date_default_timezone_set("Etc/GMT-$i");
      echo date("东 $i 区时间 Y-m-d H:i:s", $t), '<br>';
    }
    北京时间 2013-01-09 14:14:01
    格林威治时间 2013-01-09 06:14:01
    东 1 区时间 2013-01-09 07:14:01
    东 2 区时间 2013-01-09 08:14:01
    东 3 区时间 2013-01-09 09:14:01
    东 4 区时间 2013-01-09 10:14:01
    东 5 区时间 2013-01-09 11:14:01
    东 6 区时间 2013-01-09 12:14:01
    东 7 区时间 2013-01-09 13:14:01
    东 8 区时间 2013-01-09 14:14:01
    东 9 区时间 2013-01-09 15:14:01
    东 10 区时间 2013-01-09 16:14:01
    东 11 区时间 2013-01-09 17:14:01
    东 12 区时间 2013-01-09 18:14:01
      

  4.   

    因為我把這個new封裝進了Fun這個class裡了,你用的時候可以直接Echo now('Y-m-d H:i:s',time());//2012-10-30 00:13:40