格式momentjs datetime存储在mysql (utc格式)本地日期时间
Format momentjs datetime stored in mysql (utc format) to Local DateTime
我在mysql中有一个名为registerdate的列,类型为datatime。
说现在的时间是当地时间"2015-10-10 06:00:00"。
在数据库中,我存储UTC时间,因此它将被转换为"2015-10-10 00:30:00",因为当地时间是+530 GMT。因此,正确的时间存储在数据库中。
如何在检索注册时间时将注册时间转换为本地时间。
这是我如何转换之前保存datetime到db
moment.utc(new Date()).format("YYYY-MM-DD HH:mm:ss")
这就是我想把它转换回本地时间的原因。
moment.utc(registerdate, "YYYY-MM-DD HH:mm:ss").local().format("HH:mm:ss")
这不会改变保存的日期,并且呈现与存储在db中的相同。
第二种方法:它进一步减去5:30小时,而不是增加。
moment.utc(_obj[i].StartTime).format("HH:mm:ss")
我做错了哪一步
我不认为使用JavaScript在MySQL中保存日期时间是一个好主意。我认为最好使用MySQL函数UTC_TIMESTAMP()。例如:
INSERT INTO `ITEMS` (`name`, `date_add`) VALUES ('item name', UTC_TIMESTAMP());
现在,当您从MySQL检索UTC日期时间时,您可以将其转换为Moment对象,如下所示:
var utc = moment.utc(MYSQL_DATETIME, 'YYYY-MM-DD HH:mm:ss');
var local = utc.local();
// var local = moment.utc(MYSQL_DATETIME, 'YYYY-MM-DD HH:mm:ss').local();
console.log( local.format("HH:mm:ss") ); // 15:54:31
console.log( local.fromNow() ); // a minute ago
我看不出你的代码有什么问题。也许是在应用程序端(PHP?)。
另一回事。使用不带参数的方法utc()与调用utc(new Date())相同。所以你可以简单地在MySQL datetime:
的转换中使用这个//moment.utc(new Date()).format("YYYY-MM-DD HH:mm:ss")
moment.utc().format("YYYY-MM-DD HH:mm:ss")
您可能根本不需要使用moment。如果来自数据库的日期是有效日期,则只需
var someDate = new Date("2015-10-10 00:30:00");
$("#content").html(someDate.toString());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
<div>
你会看到这给了你本地时间,因为JS假设你给了它本地时间。
你可以在字符串的末尾添加"Z"来强制JS将输入值假定为UTC时间。当"Z"(祖鲁语)加在时间的末尾时,表示该时间为UTC http://www.wikiwand.com/en/ISO_8601#/Time_zone_designators
var someDate = new Date("2015-10-10 00:30:00Z");
$("#content").html(someDate.toString());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
<div>
如果你需要使用moment而不是new Date("2015-10-10 00:30:00Z")你可以做moment("2015-10-10 00:30:00Z")希望对大家有所帮助
- Json数据包含日期和时间格式
- 更改angularjs中的日期-时间格式
- 将日期时间从json转换为可读格式
- 将日期和时间转换为UTC格式的日期-Javascript
- javascript/jquery将utc转换为短格式的本地时间
- 用javascript将epoch时间转换为可读格式
- 转换日期时间格式
- 在JavaScript中转换日期/时间格式
- 时间格式不适用于dateTimePicker
- 24小时输入时间:mm格式跨浏览器
- 将时间格式更改为24小时格式
- 将某个时间格式转换为日期对象
- 时间字段上的JavaScript验证(不接受0:00格式)
- Javascript格式时间军用am pm从字符串
- 从Google Maps API返回的jQuery格式时间
- 整小时和小数小时双精度值转换为 12 小时制格式时间
- 日期列中的剑道网格格式时间问题
- 格式时间的循环值(小时和分钟)
- 在jquery datepicker中删除24小时格式时间中的冒号
- 在倒计时/定时器格式时间分钟和秒