Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-new Date()在Android 7.0设备上返回错误的时区_Javascript_Android_Date_Datetime - Fatal编程技术网

Javascript-new Date()在Android 7.0设备上返回错误的时区

Javascript-new Date()在Android 7.0设备上返回错误的时区,javascript,android,date,datetime,Javascript,Android,Date,Datetime,以下问题仅出现在Android 7.0(未在7.0+上检查)设备上 当设备上的时区发生更改时,系统日期会正确更改,但new date()会给出较早设置的时区 例: 选定时区:GMT+05:30(印度标准时间) 更改时区: 选定时区:GMT+01:00(中欧标准时间)。 设备上的系统时间更改 但新日期仍然给出了以前选择的时区 var date = new Date(); console.log(date);// Thu Mar 16 2017 14:40:32 GMT+0530 (IST) 时区

以下问题仅出现在Android 7.0(未在7.0+上检查)设备上

当设备上的时区发生更改时,系统日期会正确更改,但new date()会给出较早设置的时区

例:

选定时区:GMT+05:30(印度标准时间)

更改时区:

选定时区:GMT+01:00(中欧标准时间)。 设备上的系统时间更改

但新日期仍然给出了以前选择的时区

var date = new Date();
console.log(date);// Thu Mar 16 2017 14:40:32 GMT+0530 (IST)
时区不变。

如果我重新启动设备,新的日期会给出正确的时区

var date = new Date();
console.log(date);// Thu Mar 16 2017 10:21:12 GMT+0100 (CET)
有人面对过这个问题吗?
有什么变通方法/解决方案吗?

嗨,我也遇到了同样的问题,所以我告诉我的代码从php文件中获取服务器的时间:

    <?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
echo date("c");
?>

然后jQuery:

function addZero(i) {
    if (i < 10) {
        i = "0" + i;
    }
    return i;
}

    $.ajax({
    type: "GET",
    url: "time.php",
    success: function(phptime)
    {
    var now = new Date(phptime);
    var hours = addZero(now.getHours());
    var minutes = addZero(now.getMinutes());
    var dayIndex = now.getDay();
    console.log(phptime);
    console.log(now);
    console.log(hours);
    console.log(minutes);
    console.log(dayIndex);
            }
    });
函数addZero(i){
如果(i<10){
i=“0”+i;
}
返回i;
}
$.ajax({
键入:“获取”,
url:“time.php”,
成功:功能(phptime)
{
var now=新日期(phptime);
var hours=addZero(now.getHours());
var minutes=addZero(now.getMinutes());
var dayIndex=now.getDay();
console.log(phptime);
console.log(现在);
控制台日志(小时);
控制台日志(分钟);
console.log(dayIndex);
}
});

因此,现在我的时间不取决于设备,而只取决于服务器。

有问题吗?是的。编辑了这篇文章。怎么会这样?重新启动设备实际上是不可接受的。有人知道这个问题是否会影响到Android的后续版本,也就是说,他们是否修复了它?如果应用程序想要显示本地时间,这不是答案
function addZero(i) {
    if (i < 10) {
        i = "0" + i;
    }
    return i;
}

    $.ajax({
    type: "GET",
    url: "time.php",
    success: function(phptime)
    {
    var now = new Date(phptime);
    var hours = addZero(now.getHours());
    var minutes = addZero(now.getMinutes());
    var dayIndex = now.getDay();
    console.log(phptime);
    console.log(now);
    console.log(hours);
    console.log(minutes);
    console.log(dayIndex);
            }
    });