将MySql DateTime邮票转换为JavaScript的日期格式

2022-08-30 02:02:19

有谁知道我如何获取MySQL数据类型值,例如解析它或将其转换为JavaScript函数,例如:- Date('YYYY,MM,DD,HH,MM,SS);datetimeYYYY-MM-DD HH:MM:SSDate()

谢谢!


答案 1

这里给出的一些答案要么过于复杂,要么根本行不通(至少不是在所有浏览器中)。如果退后一步,您可以看到MySQL时间戳的每个时间分量与构造函数所需的参数的顺序相同。Date()

所需要的只是在字符串上进行非常简单的拆分:

// Split timestamp into [ Y, M, D, h, m, s ]
var t = "2010-06-09 13:12:01".split(/[- :]/);

// Apply each element to the Date function
var d = new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));

console.log(d);
// -> Wed Jun 09 2010 14:12:01 GMT+0100 (BST)

公平警告:这假设您的MySQL服务器正在输出UTC日期(这是默认值,如果字符串中没有时区组件,则建议使用)。


答案 2

为了添加优秀的Andy E答案,常见用法的功能可以是:

Date.createFromMysql = function(mysql_string)
{ 
   var t, result = null;

   if( typeof mysql_string === 'string' )
   {
      t = mysql_string.split(/[- :]/);

      //when t[3], t[4] and t[5] are missing they defaults to zero
      result = new Date(t[0], t[1] - 1, t[2], t[3] || 0, t[4] || 0, t[5] || 0);          
   }

   return result;   
}

通过这种方式,给定表单中的MySQL日期/时间,甚至是缩写形式(仅日期),您可以执行以下操作:"YYYY-MM-DD HH:MM:SS""YYYY-MM-DD"

var d1 = Date.createFromMysql("2011-02-20");
var d2 = Date.createFromMysql("2011-02-20 17:16:00");
alert("d1 year = " + d1.getFullYear());