【问题标题】:Javascript - moment.js date object to unix stringJavascript - moment.js 日期对象到 unix 字符串
【发布时间】:2016-03-08 03:10:08
【问题描述】:

我有一些时刻 js 日期对象。 对象中的日期是:

2015 年 12 月 3 日星期四 00:00:00 GMT+0100

我正在尝试转换为 unix。 所以我只是调用 date_start.unix();

但它返回给我:1449097200,什么意思: 格林威治标准时间 2015 年 12 月 2 日星期三 23:00:00

那么我需要做什么才能拥有与对象完全相同的日期? 我看到它有 1 小时的差异......但我不明白为什么它会这样工作。

【问题讨论】:

  • 日期时间相同但时区不同。 2015 年 12 月 3 日星期四 00:00:00 GMT+0100 也是 2015 年 12 月 2 日星期三 23:00:00 GMT.
  • 格林威治标准时间 2015 年 12 月 2 日星期三 23:00:00 与 2015 年 12 月 3 日星期四 00:00:00 GMT+0100...
  • 我需要恰好 Thu Dec 03 2015 00:00:00 在 unix 时间,因为我调用 mysql 查询并从 03.12.2015 00:00 03.12.2015 23:59 的统计数据中查找,所以这意味着我需要一整天的行,如何更改时区?
  • 你的意思是你需要一个字符串
  • 也许你需要和local and UTC一起玩

标签: javascript date unix momentjs


【解决方案1】:

Thu Dec 03 2015 00:00:00 GMT+0100Wed, 02 Dec 2015 23:00:00 GMT 完全相同,与 unixtime 1449097200 完全相同。

没有错误:当伦敦(GMT)晚上11点时,布鲁塞尔已经是午夜(GMT+1);这两件事同时发生。

【讨论】:

  • 是的,但是怎么做呢?我试图更改时区,但它不起作用。例如:date.tz('Australia/Sydney').unix();
  • 重复我的问题,“那个数据库的时区是什么?” - 我认为您的数据库可能在格林威治标准时间运行。向我们展示您的数据库查询,我相信问题实际上是那里
【解决方案2】:

我在这里厌倦了很多解决方案。 - 改变时刻对象的本地化(它改变了亚洲时间的时刻日期)然后我尝试使用 moment.unix() 并再次获得相同的日期和时间!

是什么解决了我的问题? - 只需将 +3600 添加到我的时间... - 创建新的 UTC 日期。

//First solution
var time = moment_start.unix() + 3600;

//Second solution
var time = new Date.UTC(y,m,d,h,m,s)/100; <--- This give me exacly same unix which i need!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多