sql >> Databáze >  >> RDS >> Mysql

převést časové pásmo na jiné časové pásmo

Nejprve musíte vytvořit instanci objektu datetime s původním časovým pásmem. Poté po vytvoření instance objektu datetime upravte časové pásmo pomocí DateTime::setTimezone() .

Viz tento kód, kde jsem použil Asia/Hong_Kong jako příklad GMT+8 časové pásmo:

$time = "2012-11-07 15:05:26"; // fetch from database
$date = new DateTime($time,new DateTimeZone('Asia/Hong_Kong'));
$date->setTimezone(new DateTimeZone('Europe/Berlin'));
echo $date->format('Y-m-d H:i:s'); // yields 2012-11-07 08:05:26

Pokud jsou všechna původní data vždy konzistentně míněna jako GMT+8 a vaše aplikace PHP je nastavena tak, aby používala také GMT+8 (nastaveno pomocí date_default_timezone_set() ), není třeba zadávat počáteční DateTimeZone objekt, jako nově vytvořený DateTime objekty budou automaticky vytvořeny s tímto časovým pásmem.



  1. Hibernate anotace pro sériový typ PostgreSQL

  2. Velikost pro ukládání adres IPv4, IPv6 jako řetězce

  3. Proč funkce 'insert' nepřidává řádky pomocí MySQLdb?

  4. Zřetězit/sloučit hodnoty pole během seskupování/agregace