我有这样的json响应:
{
"NO_INSPECTION": "55",
"NO_SURAT": "00055",
"DATE_OF_DESCRIPTION": "2015-12-21 03:08:24"
}
如何将"DATE_OF_DESCRIPTION"
中的数据转换为日期和时间。日期应为dd-mm-yyy
格式,时间应为HH:mm
格式。 (DATE_OF_DESCRIPTION
的样本值为2015-12-21 03:08:24
)
我试过new Date(response.DATE_OF_DESCRIPTION);
但没有成功。我怎样才能做到这一点?
答案 0 :(得分:0)
JavaScript具有固定的日期格式,您可以更改它,因此Date
对象这次无法帮助您。在我看来,你想要分割那个日期,所以如果你以这种格式“dd-mm-yyy HH:mm”提供它很容易:
response.DATE_OF_DESCRIPTION = response.DATE_OF_DESCRIPTION.split(" "); // date and time are separated by an space
var date = response.DATE_OF_DESCRIPTION[0];
var time = response.DATE_OF_DESCRIPTION[1];
顺便说一句,如果你想解析一个指定格式的日期,为什么不使用任何库?其中许多几乎与本机方法一样可靠和快速。试一试;)
你也可以格式化日期,所以它符合JS规格但是,为什么重新发明轮子?图书馆将为您完成此任务,您将获得最佳的跨浏览器结果!
我用google搜索“javascript日期解析库”,这就是我发现的:
http://momentjs.com/< ---我认为这就是你要找的东西!
答案 1 :(得分:0)
如果不使用其他库并假设输出将始终为零填充且长度相同,我会这样做:
var response = {
DATE_OF_DESCRIPTION: "2015-12-21 03:08:24"
}
var raw = response.DATE_OF_DESCRIPTION;
var datePart = raw.split(' ')[0];
var timePart = raw.split(' ')[1];
var year = datePart.substring(0, 4);
var month = datePart.substring(5, 7);
var day = datePart.substring(8, 10);
var hours = timePart.substring(0, 2);
var minutes = timePart.substring(3, 5);
// NOTE: Month is 0 indexed
var date = new Date(year, month - 1, day);
var dateTime = new Date(year, month - 1, day, hours, minutes);
console.log(date);
console.log(dateTime);
这给出了输出
Mon Dec 21 2015 00:00:00 GMT+1000 (E. Australia Standard Time)
Mon Dec 21 2015 03:08:00 GMT+1000 (E. Australia Standard Time)
(I'm from Australia, so your timezone will vary)