【问题标题】:Need similar date function in rails在rails中需要类似的日期功能
【发布时间】:2017-11-24 06:11:18
【问题描述】:

我试图探索 nodejs 中的 Date 函数。当我运行这个函数时

new Date
=> 2017-11-24T06:06:27.215Z

我尝试在 Rails 中做同样的事情,但找不到任何可以给我与 nodejs 相同结果的东西

DateTime.now
 Fri, 24 Nov 2017 11:37:50 +0530 

Time.now
2017-11-24 11:38:02 +0530 

以上两件事都没有给我与 nodejs 相同的东西

谁能帮我解决这个问题

这是link,我在节点js中测试日期函数

【问题讨论】:

  • 链接:repl.it/repls/FractalWiseAfricanwildcat 没有我猜的代码。
  • 我不知道节点生成字符串末尾的“.215Z”,但你可以在rails中使用Time.now.strftime('%Y-%m-%dT%H:%M:%S%z')做类似的事情,输出“2017-11-24T11:50:14+ 0530"。
  • 这个我已经知道我需要rails中的末端部分(.215Z)
  • @user6554447 查看我的帖子,您将获得最多 3 位数的秒数

标签: javascript ruby-on-rails node.js ruby


【解决方案1】:

你应该使用这个:

[2] pry(main)> require 'time'
=> true
[3] pry(main)> Time.now.utc.iso8601
=> "2017-11-24T06:23:21Z"
[4] pry(main)> 

ISO8601 日期末尾的“Z”表示它采用 UTC,而不是本地时区。

并获得更精细的分辨率:

[20] pry(main)> Time.now.utc.round(10).iso8601(6)
=> "2017-11-24T06:26:58.008245Z"

【讨论】:

  • 好的,看看更新以获得更好的分辨率,就像在 nodoejs 中一样,我很高兴这个帮助
【解决方案2】:
Time.now.utc.iso8601(3)
 => "2017-11-24T06:29:58.187Z"

【讨论】:

    【解决方案3】:
    DateTime.now.iso8601
    #⇒ "2017-11-24T07:21:03+01:00"
    

    请注意,必须在 Rails 中始终使用时区,例如 Time.zone.now,否则不同的时区迟早会破坏应用程序逻辑。上面有一个brilliant blog post,供进一步参考。

    【讨论】:

    • 还是不完全一样的结果
    • 您似乎完全误解了它是什么格式以及为什么这与您的节点结果不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多