【发布时间】:2014-11-27 13:01:25
【问题描述】:
你如何用javascript获取当前时区偏移量,以小时为单位,将其存储在数据库中,并与数据库中的其他时区行进行比较以获得时区差异。
【问题讨论】:
标签: javascript php sql timezone
你如何用javascript获取当前时区偏移量,以小时为单位,将其存储在数据库中,并与数据库中的其他时区行进行比较以获得时区差异。
【问题讨论】:
标签: javascript php sql timezone
不打算编写完整的代码,因为这需要几个小时,但这里是它的要点......
首先用 JS 获取偏移量。这是 MDN 上的一个很好的示例
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
然后使用 AJAX 将其传递到服务器端。 jQuery 可以让你很好地做到这一点..
https://api.jquery.com/jquery.post/
$.post(
"ajax/store-date.php",
{
offset: currentTimeZoneOffsetInHours
},
function( data ) {
// success callback.
});
在 PHP 端将其存储在数据库中。有很多方法可以做到这一点..这是一个基本的..
http://www.w3schools.com/php/php_mysql_insert.asp
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Offsets (offset) VALUES (" . floatval($_POST['offset']) . ")";
if ($conn->query($sql) === TRUE) {
echo "Success!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
要比较使用 SQL,例如...
SELECT SUM(offset) FROM Offsets
WHERE id IN (1,10) /* add the 2 entry id's you want to compare */
如前所述,缺少大量额外代码,但这与问题的范围无关。
【讨论】: