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

问题描述 投票:1回答:3

在我的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)/ 的日期

我怎么能实现这个目标?

javascript json date
3个回答
2
投票

传递给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");

0
投票

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

-1
投票

试试这样..

@JsonSerialize(using = CustomJsonDateSerializer.class)@JsonDeserialize(using = CustomJsonDateDeserializer.class)

© www.soinside.com 2019 - 2024. All rights reserved.