Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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 奇怪的结果通过了”;日期“;通过JSON输入_Javascript_Php_Html_Json - Fatal编程技术网

Javascript 奇怪的结果通过了”;日期“;通过JSON输入

Javascript 奇怪的结果通过了”;日期“;通过JSON输入,javascript,php,html,json,Javascript,Php,Html,Json,我正在尝试将用户在表单上输入的日期发送到我的服务器后端(所有数据都是以JSON格式发送的,因为我正在为混合应用程序使用JavaScript)。但是,发送到服务器的结果如下: 在申请表上,我输入以下日期: July 18, 1994 在服务器上,它接收以下输入: 1994-07-18T05:00:00.000Z 我不明白后面的T05:00:00.000Z文本是怎么回事,也不明白它的用途,或者如何摆脱它 此请求通过AngularJS中的$http模块发送。使用ng model将date字段链接到

我正在尝试将用户在表单上输入的日期发送到我的服务器后端(所有数据都是以JSON格式发送的,因为我正在为混合应用程序使用JavaScript)。但是,发送到服务器的结果如下:

在申请表上,我输入以下日期:

July 18, 1994
在服务器上,它接收以下输入:

1994-07-18T05:00:00.000Z
我不明白后面的
T05:00:00.000Z
文本是怎么回事,也不明白它的用途,或者如何摆脱它

此请求通过AngularJS中的
$http
模块发送。使用
ng model
date
字段链接到表单上的日期输入

createRequest($http, "register", $scope.formData, function(data) {
    alert(JSON.strinfify(data));
});
以下是createRequest方法:

function createRequest($http, requestType, requestData, onResponse, onFailed) {
    console.log("Creating a request");
    requestData['request'] = requestType;
    requestData['version'] = applicationVersion;
    $http.post("file.php", requestData).success(function(data) {
        if(data.status == "mismatch") {
            forceUpdate();  
        } else if(data.status == "e_error") {
            alert(data.message);    
        } else if(data.status == "u_error") {
            onFailed();
        } else if(data.status == "success") {
            onResponse(data);
        } else {
            console.log(JSON.stringify(data));
        }
    });
}

提前感谢您提供的任何信息

我怀疑Javascript正在将日期转换为该日期开始时的本地午夜,我怀疑您的本地时区比UTC晚5小时。当然,如果您发布Javascript代码,就更容易知道发生了什么……Javascript代码实际上只是通过AJAX请求通过AngularJS的
$http
传递表单值<代码>$http.post('localhost',{date:date}).success(函数(数据){alert(JSON.stringify(数据));})它没有通过“1994年7月18日”-因此,如果这是表单的输入,那么显然在某个地方正在进行转换。你应该追查发生这种情况的地方。(也要检查网络级别发生的事情,以确保它不是服务器端的转换——我怀疑这是真的。)服务器当前不执行任何逻辑,而是打印日期(在本例中,我试图找出如何获取常规日期),JavaScript似乎(默认情况下?)将时区添加到日期输入的末尾。不断通过网络发送这些信息有点毫无意义。这并没有增加时区。它只是将值转换为UTC瞬间。但是如果你想改变它,你需要知道它到底发生在哪里。