Rails 以一种方式格式化 DateTime.now 和 DateTime.yesterday 另一种方式 - 我如何

Rails Formats DateTime.now one way and DateTime.yesterday another - how do I get date in the past formatted like DateTime.now?

本文关键字:方式 DateTime yesterday 另一种 now 格式化 一种 Rails      更新时间:2023-09-26

我有 2 行代码试图在 JavaScript 中放置开始和结束日期时间。 new Date('<%= DateTime.now.beginning_of_day.to_s %>')就是一个例子。 DateTime.now.beginning_of_day返回字符串2012-08-13T00:00:00-04:00 JavaScript 将其转换为 8/13/2012 00:00。 完善。 但是,DateTime.yesterday.beginning_of_day.to_s返回 '2012-08-11 20:00:00-04:00',JavaScript 将其转换为 8/11/2012 20:00。 我不想前天晚上8点。 我昨天要午夜。 我尝试过Date.yesterday.in_time_zone("Eastern Time (US & Canada)").utc和无数其他排列。 我该怎么做才能获得以与DateTime.now相同的方式格式化的过去日期?

试试这个:

DateTime.now.yesterday.beginning_of_day

我会使用Time.zone

然后一些笨拙的to_date回来to_time以确保它在午夜归零

new Date('<%= Time.zone.now.to_date.to_time.to_s %>')
new Date('<%= (Time.zone.now - 1.day).to_date.to_time.to_s %>')

您应该能够使用 Time.zone.now.yesterday.to_date.to_time.to_s 而不是 - 1.day