首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将MySql DateTime戳记转换为JavaScript的日期格式

将MySql DateTime戳记转换为JavaScript的日期格式
EN

Stack Overflow用户
提问于 2010-06-19 21:06:28
回答 13查看 149.6K关注 0票数 169

谁知道如何获取MySQL日期数据类型值,例如YYYY-MM-DD HH:MM:SS,并将其解析或转换为在JavaScript的Date()函数中工作,例如:- Date('YYYY,MM,DD,HH,MM,SS);

谢谢!

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2010-06-19 22:53:16

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

所需要的就是对字符串进行非常简单的拆分:

代码语言:javascript
复制
// 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日期(这是默认设置,如果字符串中没有时区部分,则建议使用此设置)。

票数 434
EN

Stack Overflow用户

发布于 2011-02-21 00:28:01

为了给优秀的Andy E answer添加一个常用的功能,可以是:

代码语言:javascript
复制
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;   
}

通过这种方式,在表单"YYYY-MM-DD HH:MM:SS"甚至简短的表单(only date) "YYYY-MM-DD"中给定一个MySQL日期/时间,您可以这样做:

代码语言:javascript
复制
var d1 = Date.createFromMysql("2011-02-20");
var d2 = Date.createFromMysql("2011-02-20 17:16:00");
alert("d1 year = " + d1.getFullYear());
票数 66
EN

Stack Overflow用户

发布于 2013-11-21 00:29:48

我想我可能找到了一种更简单的方法,但没有人提到。

可以通过以下方式将MySQL DATETIME列转换为unix时间戳:

代码语言:javascript
复制
SELECT unix_timestamp(my_datetime_column) as stamp ...

我们可以通过使用从纪元开始需要毫秒的构造函数来创建一个新的JavaScript Date对象。unix_timestamp函数返回从纪元开始的秒数,因此我们需要乘以1000:

代码语言:javascript
复制
SELECT unix_timestamp(my_datetime_column) * 1000 as stamp ...

结果值可直接用于实例化正确的Javascript Date对象:

代码语言:javascript
复制
var myDate = new Date(<?=$row['stamp']?>);

希望这能有所帮助。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3075577

复制
相关文章

相似问题

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