mysql中取出的时间格式不正确

ps:
最终采用了一楼推荐的momentjs进行转换,
希望帮到后来人,此坑完结.


mysql中存储的数据类型是datetime

图片描述

select出来都是utc时间 格式如下:
2019-07-08T03:38:27.000Z

因为utc 2019-07-08T03:38:27.000Z格式不是北京时间且格式不是需要的,
所以取出我对数据进行了转换 ,转换方法如下:

function formatUTC(utc_datetime) {
  // 转为正常的时间格式 年-月-日 时:分:秒
  var T_pos = utc_datetime.indexOf('T');
  var Z_pos = utc_datetime.indexOf('Z');
  var year_month_day = utc_datetime.substr(0, T_pos);
  var hour_minute_second = utc_datetime.substr(T_pos + 1, Z_pos - T_pos - 1);
  var new_datetime = year_month_day + " " + hour_minute_second; // 2017-03-31 08:02:06

  // 处理成为时间戳
  timestamp = new Date(Date.parse(new_datetime));
  timestamp = timestamp.getTime();
  timestamp = timestamp / 1000;

  // 增加8个小时,北京时间比utc时间多八个时区
  var timestamp = timestamp + 8 * 60 * 60;

  // 时间戳转为时间
  var beijing_datetime = new Date(parseInt(timestamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
  return beijing_datetime;
}

本地开发环境后台返回前台得到的数据都是正确的格式 YYYY-MM-DD hh-mm-ss 如: 1999-10-10 08:30:10 ,字符串
但是,
项目上传到centOS服务器上之后,取出的时间都变成了 7/8/2019, 7:01:12 AM (字符串)

这并不是我想要的,排查原因,看到浏览器端得到的数据就已经是7/8/2019, 7:01:12 AM类型了,不是前端显示问题,
说明还是服务器除了问题,但是不知道哪里出了问题?为什么本地mac开发环境没有异常呢?

如果解决不了的话这种日期格式怎么转换,求指教!


ps:
最终采用了一楼推荐的momentjs进行转换,
希望帮到后来人,此坑完结.

阅读 4.5k
2 个回答
  • 既然是js ,就推荐moment将时间统一处理成时间戳,同时它也支持时区的转换,然后将时间戳 供各个端 去做格式化的显示。
  • 不同机器上,我猜测应该和本地的时间格式设置有关系。

moment(news_data_auto).format("Y-MM-DD HH:mm:ss");

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题