Rails格式化DateTime.now单向和DateTime.yesterday另一种 - 我如何获得过去的日期格式化为DateTime.now?

时间:2012-08-13 20:34:57

标签: javascript ruby-on-rails datetime

我有两行代码尝试在JavaScript中放置开始和结束日期时间。 new Date('<%= DateTime.now.beginning_of_day.to_s %>')就是一个例子。 DateTime.now.beginning_of_day返回JavaScript转换为8/13/2012 00:00的字符串2012-08-13T00:00:00-04: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相同?

2 个答案:

答案 0 :(得分:2)

试试这个:

DateTime.now.yesterday.beginning_of_day

答案 1 :(得分:0)

我会使用Time.zone

然后一些hacky 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