【问题标题】:How to get only the year from unix time stamp?如何从unix时间戳中仅获取年份?
【发布时间】:2018-02-22 18:20:19
【问题描述】:

我的项目有一个日期选择器,当用户选择一个日期时,我将其设置为 unix 时间戳,如下所示。

1517769000

我是这样的(这是一个 RN 项目)

var selectedDate = moment(this.state.date).unix();

现在我只需要在 JS 中获取上述日期的年份。我也试过 selectedDate.year() 。但它总是在 1970 年。请帮我解决这个问题。

【问题讨论】:

  • 鉴于它是一个时刻对象,你应该能够做 moment(selectedDate).year() ,它会给你一年。有关格式化选项,请参阅 member.js 文档。相应更新。
  • 查看右侧收集为“相关”的内容。一个简单的搜索也可以工作......

标签: javascript unix-timestamp


【解决方案1】:

这应该可以解决问题

let date = new Date(1517769000 * 1000).getFullYear()
console.log(date)

编辑

添加乘以 1000,因为 Unix 时间戳以秒为单位,JavaScript Date 以毫秒为单位

【讨论】:

  • 您的示例记录 1970 但时间戳的年份应该是 2018 (1517769000 = 02/04/2018)
  • 我需要从 unix 时间戳中获取那一年。请帮忙
  • @apple_92 运行代码 sn-p。有用。如果需要,乘以 1000。
  • 它以人类可读的格式工作。我需要像“1519324820”这样的格式
  • @apple_92 我不太明白你的目标是什么。您需要 JavaScript 时间戳格式的年份吗?那为什么不把它乘以 1000 呢?如果我误解了,请尝试澄清你的目标。
【解决方案2】:

给你..

new Date(selectedDate).getFullYear();

【讨论】:

    【解决方案3】:

    只需将时间戳乘以 1000 -> 毫秒。

    date = new Date(1517769000 * 1000).getFullYear()

    【讨论】:

    • 我需要从 unix 时间戳中获取那一年。请帮忙——
    【解决方案4】:

    Unix 时间戳不包含微秒,而 Javascript 日期包含。

    new Date(selectedDate * 1000).getFullYear();

    当你给它一个 Unix 时间戳时会产生正确的值。

    如果时间戳首先来自 JavaScript,则其他答案是正确的。

    【讨论】:

    • 我需要从 unix 时间戳中获取那一年。请帮忙
    【解决方案5】:

    Unix time

    自 1970 年 1 月 1 日星期四 00:00:00 协调世界时 (UTC) 以来经过的 秒数 [...]

    new Date()

    日期对象基于时间值,即自 1970 年 1 月 1 日 UTC [...]

    以来的毫秒

    乘以1000会更好:

    console.log(new Date(1517769000*1000).getFullYear());

    【讨论】:

    • 我需要从 unix 时间戳中获取那一年。请帮忙
    • @apple_92 如果您单击“运行代码 sn-p”,它将打印 2018 - 这不是您想要的吗? console.log() 进行打印,因此您只需要 new Date(1517769000*1000).getFullYear() 进行计算。假设selectedDate 包含这个数字,您可以将其用作var year=new Date(selectedDate * 1000).getFullYear();
    猜你喜欢
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2010-12-15
    • 2012-03-17
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2012-08-05
    相关资源
    最近更新 更多