首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript日期时间解析

JavaScript日期时间解析
EN

Stack Overflow用户
提问于 2012-10-10 18:06:08
回答 2查看 64.3K关注 0票数 12

可能重复: How can I convert string to datetime with format specification in JavaScript?

我有一个json响应,其中包含一个hashmap,类似;

代码语言:javascript
复制
{"map":{"2012-10-10 03:47:00.0":23.400000000000002,"2012-10-10 03:52:00.0":23.3,"2012-10-10 03:57:00.0":23.3,"2012-10-10 04:02:00.0":23.3,"2012-10-10 04:07:00.0":23.200000000000003,"2012-10-10 04:13:00.0":23.1,"2012-10-10 04:18:00.0":23.1,"2012-10-10 04:23:00.0":23.0,"2012-10-10 04:28:00.0":23.0,"2012-10-10 04:33:00.0":23.0,"2012-10-10 04:38:00.0":22.900000000000002,"2012-10-10 04:43:00.0":22.8,"2012-10-10 04:48:00.0":22.8,"2012-10-10 04:53:00.0":22.700000000000003,"2012-10-10 04:58:00.0":22.6,"2012-10-10 05:03:00.0":22.6,"2012-10-10 05:08:00.0":22.5,"2012-10-10 05:13:00.0":22.5,"2012-10-10 05:18:00.0":22.5,"2012-10-10 05:23:00.0":22.400000000000002}}

我想格式化json的日期时间部分;

dd/mm/yyyy HH:mm:ss

假设我把所有的对元素都像这样;

代码语言:javascript
复制
var myArr = [["2012-10-10 03:47:00.0", 23.400000000000002], ["2012-10-10 03:52:00.0", 23.3], ....];

然后,尝试像下面这样解析datetime部分,并在控制台上得到Date {无效日期}

代码语言:javascript
复制
new Date(myArr[0][0]);

如何格式化这种日期时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-10 18:18:56

尝试以下几点:

代码语言:javascript
复制
new Date(Date.parse(myArr[0][0]));

EXAMPLE

使用Date.parse方法将字符串解析为自1970年1月1日起的毫秒数,00:00:00UTC。获取这个毫秒数,并再次调用Date方法将时间转换为date对象。

编辑

对这种情况来说,这可能有点难看,但火狐似乎在-00.0上有问题。

代码语言:javascript
复制
var myArr = [["2012-10-10 03:47:00.0", 23.400000000000002], ["2012-10-10 03:52:00.0", 23.3]];

var date = convertDateTime(myArr[0][0]);
console.log(date);

function convertDateTime(dateTime){
    dateTime = myArr[0][0].split(" ");

    var date = dateTime[0].split("-");
    var yyyy = date[0];
    var mm = date[1]-1;
    var dd = date[2];

    var time = dateTime[1].split(":");
    var h = time[0];
    var m = time[1];
    var s = parseInt(time[2]); //get rid of that 00.0;

    return new Date(yyyy,mm,dd,h,m,s);
}

EXAMPLE

票数 24
EN

Stack Overflow用户

发布于 2012-10-10 19:07:48

代码语言:javascript
复制
function dateFromString(str) {
  var m = str.match(/(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)\.(\d+)/);
  return new Date(+m[1], +m[2] - 1, +m[3], +m[4], +m[5], +m[6] * 100);
}

dateFromString(myArr[0][0]); // Sat Oct 10 2012 03:47:00 GMT-0500 (EST)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12825588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档