【发布时间】:2015-07-10 00:12:27
【问题描述】:
我在托管服务提供商“byethost.com”上加载了我的 php 脚本。我正在尝试将 created_at 中记录的时间设置为客户端的本地时间,但我总是得到 GTM 时间。我怎样才能让它工作?
<?php
$data = json_decode ( file_get_contents ( 'php://input', true ) );
$mac = $data->{'mac'};
$latitude = $data->{'latitude'};
$longitude = $data->{'longitude'};
$route = $data->{'route'};
$timeZone = "Europe/Berlin";
$print = date_default_timezone_set($timeZone);
$con = new mysqli ( "domin.com", "username", "password", "database" );
// check whether route's table exist.
$results = $con->query ( "SHOW TABLES like 'bus' " ) or die ( mysqli_error () );
if (($results->num_rows) == 1) {$sql = "REPLACE INTO bus(mac, route, latitude, longitude, created_at)
VALUES( ?, ?, ? , ?, ? )";
$stmt = $con->prepare($sql);
if(false === $stmt){
echo "prepare() failed: ";
}
$rc = $stmt->bind_param("sssss",$mac,$route, $latitude,$longitude, $print);
echo $rc;
if ( false===$rc ) {
echo "bind_param() failed: ";
}
$rc = $stmt->execute();
if ( false===$rc ) {
echo "execute failed.";
}
$stmt->close();
} else {
$create = "CREATE TABLE bus
(id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
mac VARCHAR(30) NOT NULL UNIQUE,
route int(11) ,
latitude FLOAT(10,6) NOT NULL ,
longitude FLOAT(10,6) NOT NULL,
created_at TIMESTAMP NOT NULL" ;
$stmt = $con->prepare($create) or die ( $con->error );
$stmt->execute();
$stmt->close();
}
【问题讨论】:
-
您可能希望将所有时间存储在 GMT 的数据库中,并以用户的时区显示时间。在这个 SO 问题stackoverflow.com/questions/3792066/… 中查看来自@fijiaaron 的答案。
-
@steve:不,我想将数据(用于测试目的)存储在客户端时区的总线表中。