Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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_Json_Date - Fatal编程技术网

Javascript 将日期字符串转换为JSON日期格式

Javascript 将日期字符串转换为JSON日期格式,javascript,json,date,Javascript,Json,Date,在我的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()

在我的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");
像这样试试

@JsonSerialize(使用=CustomJsonDateSerializer.class)
@JsonDeserialize(使用=CustomJsonDateDeserializer.class)

@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)

都不?请同时查看文档,找出传递给
Date
的参数的正确形式。目前您的表单无效。@Teemu您的示例中没有一个谈到转换为JSON。你能给我一个具体的例子吗?你可以用
JSON.stringify()
转换成JSON,但是传递给
Date
的参数必须正确格式。@Teemu非常感谢你能为我提供小提琴,告诉我该怎么做。阅读MDN文章怎么样?你的“JSON格式”对我来说也很奇怪,但是,请尝试改进你的答案。这段代码不足以解决这个问题