我一直试图解决这个问题很长一段时间。我知道JavaScript是客户端脚本,PHP是服务器端脚本,但是可以将浏览器的纪元时间传递到PHP脚本中以运行一些计算,然后根据结果返回geoJSON数据;所有的异步?
我想传递给PHP脚本的函数类似于:
function retreiveUTC() {
var now = new Date().getTime();
var browserUTC = Math.floor(now)/1000.0; // this returns epoch time of the browser
}
然后我想获取从函数生成的纪元时间并将其传递给php脚本以确定要返回的JSON文件。
例如,我将在服务器上驻留以下文件:
1352188536.JSON 1352187536.JSON 1352177536.JSON
我想检索最接近浏览器纪元结果的那个。提前谢谢。
以下更新的代码:
不确定我做错了什么,但我从ajax调用中获得了成功,但返回值未定义。
ajax的东西:
$.post ('timezone.php',
{
epochTime: browserUTC
},
function (result) {
//do someting to result
}, "json");
var browserUTC = new Date().getTime();
$.post ('timezone.php',
{
epochTime: browserUTC
},
function (result,status) {
//display file name returned by PHP
alert(result.file + "\n" + status);
//console.log('test');
});
PHP:
<?php
$epochTime = round($_POST['epochTime'] / 1000);
$res= array();
$res['file'] = $epochTime . '.JSON';
return json_encode($res);
?>
答案 0 :(得分:0)
我猜你是在询问异步请求。您可以向php脚本发送AJAX请求并获取相应的JSON数据并进行处理。你要改变设计。
首先请求页面时,发送普通数据(JSON除外),一旦在客户端加载javascript文件,就可以调用该函数,在函数结束时只需使用AJAX请求将浏览器时间发送回另一个php脚本,该脚本将获取相应的JSON文件并提供给客户端。
使用jquery库以更简单的方式执行AJAX请求。
答案 1 :(得分:0)
我相信它是通过标准的AJAX调用完成的。例如,如果您使用的是jQuery:
$.post ('pathToPHPScript.php', {epochTime: browserUTC}, function (result) {
//do someting to result
}, "json");
在PHP脚本中,您可以像标准POST变量一样检索纪元时间的值:
$epochTime = $_POST['epochTime'];
//do required calculations
因此PHP具有bult-in json_encode函数,有助于从数组中生成JSON编码的字符串。如果你传递一个数组,你可以在jQuery中检索:
//PHP
$res= array();
$res['file'] = $epochTime . '.JSON';
return json_encode($res);
以及上面引用的jQuery的回调函数:
$.post ('pathToPHPScript.php', {epochTime: browserUTC}, function (result) {
//display file name returned by PHP
console.log(result.file);
});