Javascript 奇怪的结果通过了”;日期“;通过JSON输入
我正在尝试将用户在表单上输入的日期发送到我的服务器后端(所有数据都是以JSON格式发送的,因为我正在为混合应用程序使用JavaScript)。但是,发送到服务器的结果如下: 在申请表上,我输入以下日期: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字段链接到
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瞬间。但是如果你想改变它,你需要知道它到底发生在哪里。