Tag: 日期时间

Rails – 获取当前周和月的开始和结束日期

我是铁杆上的ruby新手,被困在日期里。 我用Time.now来获取当前时间。 现在我想找出当前周和当月的srart和结束日期。 例如: 如果Time.now我 – 2012-08-13 15:25:35 +0530 那么本周的开始和结束日期是: 2012-08-12 – 2012-08-18 那么当月的开始和结束日期是: 2012–08-01 – 2012-08-31 我使用代码实现相同的: Time.now.wday => 1 Time.now – 1.day => 2012-08-12 15:31:44 +0530 Time.now + 5.day => 2012-08-19 15:32:38 +0530 等等..但我发现这不是一个方便的方法。 我确信Ruby on Rails确实拥有更好的解决方案。 任何人都可以建议弄清楚相同..

我如何存储一个可以是部分的日期(即只是年份,也许也就是月份),并在以后以相同的指定方式输出它?

我想让用户指定一个日期,该日期可能包含也可能不包括日期和月份(但至少会包含年份。)问题是它在数据库中存储为日期时间; 缺失的日期/月将保存为默认值,我将丢失原始格式和日期的含义。 我的想法是除了datetime列之外还将实际格式作为字符串存储在列中。 然后,每当我必须显示其他所有内容的日期和日期时间时,我都可以使用字符串列。 缺点是我要显示的表中每个日期列的额外列,打印本地化日期不会那么容易,因为我不能依赖日期时间值……我可能要解析字符串。 我希望我忽略了一些东西,可能会有一种更简单的方法。 (注意我使用Rails,如果它对解决方案很重要。)

如何在rails中格式化datetime?

在我的Rails视图中,我有以下代码显示日期时间。 该行的结果如下: 2013-02-02 01:00:00 UTC 如何更改此设置,使其显示为: 2/2/13: X:00 PST

您如何在Rails应用程序的db / model中存储业务时间?

我正在创建一个Rails应用程序,它将存储业务的开始和结束时间。 最初,我想过简单地使用文本数据类型并让它是自由格式: “Monday to Friday 9am to 5pm Saturday 11am to 4pm Closed Sundays” 但是,要求已经改变,我需要根据当前日期和时间检查小时数,并在视图中显示“打开”或“关闭”。 就像是: class Business open_time && Time.now < close_time end end 那么,在存储一周中每一天的工作时间方面,解决这个问题的最佳方法是什么? 业务应该只是具有开放和关闭时间的open_locky:open_blocks(或其他)吗? 我应该把这一天存储为字符串吗?

在Rails中的文本框中格式化日期时间

是否有一种简单的方法来格式化Rails视图中的DateTime值的显示? 例如,如果我做的事情如下: 并且只想显示:start_date的Date部分(即我想隐藏时间部分),有没有办法在视图内部格式化:start_date字符串,以便它可以用于创建新的my_object项目和更新新的my_object项目? 只是澄清一下: 干 @my_object.start_date.strftime(‘%m/%d/%Y’) %> 当对象已经存在时(即在项目更新时)工作得非常漂亮 ,但是,在创建新项目时,由于start_date最初将为nil,因此视图将引发错误 while evaluating nil.strftime

使用abbr_month_names(和similars)和I18n.l()

我正在转向轨道,有时候有点奇怪。 安装es.yml文件后,我试图输出我的数据库的DATETIME列。 如果我这样做: = l(a.created_at, :format => :short) 没关系。 它以西class牙语格式打印出一个漂亮的日期。 但我对以这种方式使用abbr_month_names感到困惑。 我已经尝试了很多不同的方式 – 相信我,我在这个问题上大约需要四个小时 – 但我还没有找到一种方法来输出短篇小说中的月份名称“OCT。 我看了很多关于i18n和日期格式的网站,但文章总是以:format =>:short示例结束,并不关心其他显示日期的方法(好吧,有人还解释了如何使用:long格式…)

ActiveRecord:使用where子句时不考虑毫秒数

我正在开发一个带有rails api和iOS客户端的项目,使用updated_at字段作为参考来检测服务器上的最后一次拉动后发生的修改。 updated_at datetime的精度以毫秒为单位,这意味着 Model.updated_at.to_f 返回类似“1368977381.063427”的内容。 这将发送到格式为“2013-05-19T15:29:41.063427000Z”的客户端。 问题是,当我从客户端返回该日期时间,解析它并用它查询时,毫秒就会丢失。 last_update = DateTime.strptime(“2013-05-19T15:29:41.063427000Z”, “%Y-%m-%dT%H:%M:%S.%N%z”) Model.where(“updated_at > ?”, last_update) 和做的一样好 last_update = DateTime.strptime(“2013-05-19T15:29:41Z”, “%Y-%m-%dT%H:%M:%S%z”) Model.where(“updated_at > ?”, last_update) 因此,当我没有得到任何结果时,我总是得到至少一个结果,因为毫秒被截断。 如何在查询中考虑这些因素?

在为“/ edit”视图填充表单字段时,Rails app config.time_zone不适用

我在我的Rails应用程序中指定了config.time_zone,但表单字段中检索到的时间仍然呈现为UTC(这会在更新时产生问题)。 这不应该转换为指定区域的当地时间吗? /config/application.rb(仅限相关行): module ExampleSite class Application < Rails::Application config.time_zone = 'Central Time (US & Canada)' end end /events/edit.html.erb(完整文件): Edit This Event f %> /events/_fields.html.erb(仅限相关行:) “datetimefield” %> “datetimefield” %> 当我输入datetime字符串来创建一个新事件时,该值被正确保存(以UTC为单位)并在我的视图中根据需要(在本地时区)呈现,它在config.time_zone开关之前呈现UTC(所以我知道开关已经制成了)。 但是当我去编辑事件的任何其他属性时,在/ edit视图中呈现给表单字段的时间是UTC时间 – 这意味着当我更新事件时,时间会被重新保存,就像时间那样已重新输入并假定为本地,当系统将“已更新”时间属性转换为UTC进行存储时,将时间移动5小时(我与UTC的本地差异)。 如何在表单字段中呈现本地化时间? 运行Rails 3.0.5,部署到Heroku(尽管开发和生产环境中存在问题)

如何在Rails中将XML转换为哈希?

如何在Ruby中将XML主体转换为哈希? 我有一个XML体,我想解析成哈希 2010-11-10T09:00:00 2010-11-10T09:20:00 2010-11-10T09:20:00 2010-11-10T09:40:00 2010-11-10T09:40:00 2010-11-10T10:00:00 2010-11-10T10:00:00 2010-11-10T10:20:00 2010-11-10T10:40:00 2010-11-10T11:00:00 我想把它转换成这样的哈希: { :times_in_my_day => { :time_data = > [ {:start_time=>”2010-11-10T09:00:00″, :end_time => “2010-11-10T09:20:00″ }, {:start_time=>”2010-11-10T09:20:00”, :end_time => “2010-11-10T09:40:00″ }, {:start_time=>”2010-11-10T09:40:00”, :end_time => “2010-11-10T10:00:00″ }, {:start_time=>”2010-11-10T10:00:00”, :end_time => “2010-11-10T10:20:00″ }, {:start_time=>”2010-11-10T10:40:00”, :end_time => “2010-11-10T11:00:00” } ] } } 理想情况下,标记会转换为snake_case符号并成为哈希中的键。 此外,日期时间缺少其时区偏移。 它们位于当地时区(不是UTC)。 所以我想解析它以显示本地偏移量,然后将xml日期时间字符串转换为Rails DateTime对象。 结果数组将是这样的: […]

Rails’config.time_zone’不适用于加载到text_field的日期时间数据。 固定?

当我在表单中使用datetime_select时,Rails将正确调整日期时间数据的时区(根据我的config.time_zone设置),并在同一表单的edit视图中呈现正确分区时间。 但是当我尝试将相同的数据检索到text_field时(对于相同表单的相同edit视图),Rails似乎不会针对时区进行调整。 /events/edit.html.erb(完整文件): Edit This Event f %> /events/_fields.html.erb(仅限相关行:) “datetimefield” %> 示例:我的区域偏移量为-500。 我在表单中输入8:00作为start_time,将13:00 UTC写入数据库,在show页面上show 8:00(感谢config.time_zone计算偏移量),但是当我尝试编辑时对象,start_time的表单的text_field加载13:00(如果提交未更改,则将其存储在数据库中时为18:00)。 这是有问题的,因为我正在尝试使用jQuery UI的DatePicker(带有TimePicker附加组件),它依赖于text_field(不适用于datetime_select )。 有没有办法让Rails将config.time_zone偏移应用于文本字段? 运行Rails 3.0.5,部署到Heroku。 几周前就问过一个非常相似的问题提前道歉。 那里的信息仍然适用,我现在对这个问题有了更好的了解,所以我重新问了一下。