获取时区并使用javascript和php与其他时区进行比较

时间:2014-10-02 14:02:11

标签: javascript php sql timezone

如何使用javascript以小时为单位获取当前时区偏移量,将其存储在数据库中,并与数据库中的其他时区行进行比较以获得时区差异。

1 个答案:

答案 0 :(得分:1)

不会写完整的代码,因为这需要几个小时,但这是它的要点......

首先用JS获取偏移量。这是MDN上的一个很好的样本

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

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 */

如前所述,缺少额外代码的TONNES,但这与问题的范围无关。