[英]convert date string to JSON date format
在我的JavaScript中,我以以下格式输入日期作为字符串
12.12.2014
我想转换为JSON日期格式,如下所示
/Date(1358866800000)/
我怎么能做到这一点。 我尝试下面的代码转换为JSON格式,但不起作用。
function convertToJSONDate(strDate){
var dt = new Date(strDate);
var newDate = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds(), dt.getMilliseconds()));
return '/Date(' + newDate.getTime() + ')/';
}
当我尝试使用上面的功能如convertToJSONDate("12.12.2014")
,我得到的日期是这样的'/Date(NaN)/
我怎样才能做到这一点?
您传递给Date的构造函数的字符串无效
function convertToJSONDate(strDate){
var splitted = strDate.split(".");
var dt = new Date(splitted[2],splitted[0],splitted[1]);
var newDate = new Date(Date.UTC(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds(), dt.getMilliseconds()));
return '/Date(' + newDate.getTime() + ')/';
}
convertToJSONDate("12.1.2014");
另一个简化的版本可能是:
function convertToJSONDate(strDate){
var splitted = strDate.split(".");
//var dt = new Date(splitted[2],splitted[0],splitted[1]);
var newDate = new Date(Date.UTC(splitted[2], splitted[0], splitted[1]));
return '/Date(' + newDate.getTime() + ')/';
}
convertToJSONDate("12.1.2014");
@AlexBcn很好的答案,但是您需要从月份中减去1,因为月份是从零开始的。
function convertToJSONDate(strDate){
var splitted = strDate.split(".");
var newDate = new Date(Date.UTC(splitted[2], (splitted[1] - 1), splitted[0]));
return '/Date(' + newDate.getTime() + ')/';
}
//console.log(convertToJSONDate("10.01.2018"));
//Output: Wed Jan 10 2018 01:00:00 GMT+0100 (Central European Standard Time)
//Output without subtraction: Sat Feb 10 2018 01:00:00 GMT+0100 (Central European Standard Time)
尝试这样..
@JsonSerialize(使用= CustomJsonDateSerializer.class)@JsonDeserialize(使用= CustomJsonDateDeserializer.class)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.