如何在JavaScript中将MySQL日期时间值转换为json格式

如何在JavaScript中将MySQL日期时间值转换为json格式,javascript,mysql,regex,Javascript,Mysql,Regex,我想将从MySQL检索到的DATETIME值转换为JSON Tue Aug 19 2014 16:55:01 GMT+0800 (CST) 生成的JSON应该如下所示: {'year': yyyy, 'month': MM, 'day': dd, 'hour': hh, 'minute': mm, 'second': ss, 'GMT': GMT} 正则表达式似乎太复杂了。我不知道如何执行转换。您可以执行以下操作: var d = new Date("Tue Aug 19 2014 16:5

我想将从MySQL检索到的DATETIME值转换为JSON

Tue Aug 19 2014 16:55:01 GMT+0800 (CST)
生成的JSON应该如下所示:

{'year': yyyy, 'month': MM, 'day': dd, 'hour': hh, 'minute': mm, 'second': ss, 'GMT': GMT}

正则表达式似乎太复杂了。我不知道如何执行转换。

您可以执行以下操作:

var d = new Date("Tue Aug 19 2014 16:55:01 GMT+0800 (CST)");
var year = d.getFullYear();
var date = d.getDate();     //so on so forth.

所有的日期对象都会被解释。这些变量可以在json对象中使用。

也可以使用正则表达式。就像下面的代码片段一样

var s = 'Tue Aug 19 2014 16:55:01 GMT+0800 (CST)';
var p = /(\w+)\s(\w+)\s(\d+)\s(\d+)\s(\w+):(\d+):(\d+)\s(\w+).*/;

console.log(s.replace(p, "{'year': $4, 'month': $2, 'day': $1, 'hour': $5, 'minute': $6, 'second': $7, 'GMT': $8}"));

工作

使用括号
(…)
捕获组,并在最终JSON字符串中替换为
$index