引用
now = Time.now
puts now #=> Thu May 18 23:36:10 CDT 2006
puts now.to_date #=> 2006-05-18
puts now.to_s #=> Thu May 18 23:36:10 CDT 2006
puts now.to_s(:short) #=> 18 May 23:36
puts now.to_s(:long) #=> May 18, 2006 23:36
puts now.to_s(:db) #=> 2006-05-18 23:36:10
puts now.to_s(:rfc822) #=> Thu, 18 May 2006 23:36:10 -0500
puts now.ago(3600) #=> Thu May 18 22:36:10 CDT 2006
puts now.at_beginning_of_day #=> Thu May 18 00:00:00 CDT 2006
puts now.at_beginning_of_month #=> Mon May 01 00:00:00 CDT 2006
puts now.at_beginning_of_week #=> Mon May 15 00:00:00 CDT 2006
puts now.at_beginning_of_quarter #=> Sat Apr 01 00:00:00 CST 2006
puts now.at_beginning_of_year #=> Sun Jan 01 00:00:00 CST 2006
puts now.at_midnight #=> Thu May 18 00:00:00 CDT 2006
puts now.change(:hour => 13) #=> Thu May 18 13:00:00 CDT 2006
puts now.last_month #=> Tue Apr 18 23:36:10 CDT 2006
puts now.last_year #=> Wed May 18 23:36:10 CDT 2005
puts now.midnight #=> Thu May 18 00:00:00 CDT 2006
puts now.monday #=> Mon May 15 00:00:00 CDT 2006
puts now.months_ago(2) #=> Sat Mar 18 23:36:10 CST 2006
puts now.months_since(2) #=> Tue Jul 18 23:36:10 CDT 2006
puts now.next_week #=> Mon May 22 00:00:00 CDT 2006
puts now.next_year #=> Fri May 18 23:36:10 CDT 2007
puts now.seconds_since_midnight #=> 84970.423472
puts now.since(7200) #=> Fri May 19 01:36:10 CDT 2006
puts now.tomorrow #=> Fri May 19 23:36:10 CDT 2006
puts now.years_ago(2) #=> Tue May 18 23:36:10 CDT 2004
puts now.years_since(2) #=> Sun May 18 23:36:10 CDT 2008
puts now.yesterday #=> Wed May 17 23:36:10 CDT 2006
puts now.advance(:days => 30) #=> Sat Jun 17 23:36:10 CDT 2006
puts Time.days_in_month(2) #=> 28
puts Time.days_in_month(2, 2000) #=> 29
puts now.xmlschema #=> "2006-05-18T23:36:10-06:00"
Rail 2.1 支持时区。可以在
引用
config/environment.rb
中设置默认时区:
config.time_zone = 'UTC'
在 action 中,你可以覆盖默认时区,并把时间转换到指定时区。
Time.zone = 'Eastern Time (US & Canada)'
puts Time.now.in_time_zone
Rails 2.2 引入了 past?、today?和 future? 三个方法用来判断给定时间是在当前时间之前、
和现在是同一天还是在当前时间之后
Date 对象也增加了几个有用的方法。
引用
date = Date.today
puts date.tomorrow #=> "Fri, 19 May 2006"
puts date.yesterday #=> "Wed, 17 May 2006"
puts date.current #=> "Thu, 18 May 2006"
如果设置了 config.time_zone,current()返回 Time.zone.today,
否则返回 Date.today:
puts date.to_s #=> "2006-05-18"
puts date.xmlschema #=> "2006-05-18T00:00:00-06:00"
puts date.to_time #=> Thu May 18 00:00:00 CDT 2006
puts date.to_s(:short) #=> "18 May"
puts date.to_s(:long) #=> "May 18, 2006"
puts date.to_s(:db) #=> "2006-05-18"
你还可以扩展日期对象的 to_s 方法,
将上述格式化逻辑封装起来。
只要在
引用
environment.rb
文件中加上下列代码:
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:chatty => "It's %I:%M%p on %A, %B %d, %Y"
)
现在你就可以这样编写代码:
any_date.to_s(:ordinal) #=> "2006-149"
同样,也可以扩展 Time 类的格式化逻辑。
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:chatty => "It's %I:%M%p on %A, %B %d, %Y"
)
Time.now.to_s(:chatty) #=> "It's 12:49PM on Monday, May 29, 2006"
String 类还有两个与时间相关的方法: to_time()和 to_date()方法分别返回 Time 对象和
Date 对象。
puts "2006-12-25 12:34:56".to_time #=> Mon Dec 25 12:34:56 UTC 2006
puts "2006-12-25 12:34:56".to_date #=> 2006-12-25
rails 时间格式化参数
%a - The abbreviated weekday name (``Sun'')
%A - The full weekday name (``Sunday'')
%b - The abbreviated month name (``Jan'')
%B - The full month name (``January'')
%c - The preferred local date and time representation
%d - Day of the month (01..31)
%H - Hour of the day, 24-hour clock (00..23)
%I - Hour of the day, 12-hour clock (01..12)
%j - Day of the year (001..366)
%m - Month of the year (01..12)
%M - Minute of the hour (00..59)
%p - Meridian indicator (``AM'' or ``PM'')
%S - Second of the minute (00..60)
%U - Week number of the current year,starting with the first Sunday as the first day of the first week (00..53)
%W - Week number of the current year,starting with the first Monday as the first day of the first week (00..53)
%w - Day of the week (Sunday is 0, 0..6)
%x - Preferred representation for the date alone, no time
%X - Preferred representation for the time alone, no date
%y - Year without a century (00..99)
%Y - Year with century
%Z - Time zone name
%% - Literal ``%'' character
t = Time.now
t.strftime("Printed on %m/%d/%Y") #=> "Printed on 04/09/2003"
t.strftime("at %I:%M%p") #=> "at 08:56AM"
分享到:
相关推荐
在Rails开发中,为了增强用户体验,常常需要使用JavaScript来处理日期选择和管理。这篇博客“rails中使用javascript日期控件”探讨的就是如何在Rails应用中集成JavaScript日期控件,特别是通过一个名为WebCalendar....
同时,Rails还支持水平扩展,即通过增加服务器数量来分担负载。 3. **国际化和本地化**: Rails支持国际化(i18n)和本地化(l10n),允许开发者轻松地为不同的语言和地区定制应用程序。这通常涉及到对字符串资源进行管理...
- **使用日期和时间的表单辅助方法**:说明如何处理日期和时间相关的表单元素。 - **上传文件**:介绍如何处理文件上传操作。 - **定制表单生成器**:解释如何创建自定义的表单生成器。 - **理解参数命名约定**:...
首先,jQuery UI是基于jQuery库的一个扩展,它提供了大量的可定制组件,如对话框、拖放功能、日期选择器、进度条等,为开发者创建互动式用户界面提供了便利。它的核心特点在于易用性和灵活性,使得开发者无需从零...
例如,它提供了对时间、日期、数组等类型的扩展。 - **数据迁移**:介绍了如何使用Rails的迁移功能来管理数据库结构的变化,包括创建表、修改字段等操作。 - **ActiveRecord高级用法**:除了基本的CRUD操作外,还...
7. **插件(Plugins)**:Rails 社区提供了大量的插件,可以扩展框架的功能或提供特定的解决方案。 8. **Railties**:是 Rails 的核心组件,包括初始化过程、命令行工具和框架的其他基础设施。 9. **Action...
13. **社区插件(Gems)**:Rails的生态系统中有大量高质量的第三方Gem,如Devise(用户认证)、Pundit(授权管理)、Paperclip或Carrierwave(文件上传)等,它们可以极大地扩展Rails的功能。 通过研究这个源码,...
此版本的InspiniaAdmin强调了易用性、灵活性和可扩展性,是搭建企业级应用的理想选择。 首先,InspiniaAdmin是基于Bootstrap 3的,这意味着它拥有响应式设计,可以在各种设备上自适应显示,无论是桌面、平板还是...
**16.6 时间和日期的扩展** 介绍了如何扩展Time和Date类,以更好地处理时间戳和日期。 **16.7 Ruby符号的扩展** 解释了如何通过ActiveSupport扩展Ruby中的符号。 **16.8 with_options** 介绍了如何使用`with_...
- `activesupport-2.2.3.gem`:ActiveSupport包含了一系列实用的类和模块,如时间处理、日历日期、数组和哈希扩展等,这些工具增强了Ruby的基础库。 - `activerecord-2.2.3.gem`:ActiveRecord是Rails中的ORM...
本书旨在帮助读者理解Rails的基本概念、工作原理以及如何利用Rails来构建高效、可扩展的Web应用。 #### 核心知识点 ##### 1. Ruby on Rails 概览 - **定义**:Ruby on Rails(简称 Rails 或 RoR)是一种用于快速...
仅提供完整验证的Rails日期/时间验证插件(请参阅ORM / ODM支持) 使用可扩展的日期/时间解析器(使用 。请参阅插件解析器) 支持I18n的错误消息 支持Ruby 2.0+ 安装 # in Gemfile gem 'ae-validates_timeliness' ...
8. **插件系统**:Administrate有一个活跃的社区,提供了许多插件,可以扩展其功能,例如日期范围筛选器、多文件上传等。 9. **版本管理**:“e980d40”这样的版本号可能意味着在项目中锁定特定版本,以确保一致性...
- **出版日期**:2007年 - **版权归属**:本书版权所有归Wiley Publishing, Inc.所有,并在加拿大同时出版。 - **版权声明**:书中内容受版权保护,除法律允许的情况外,未经出版社书面许可不得复制或传播。 #### ...
为了确保项目的可扩展性和可维护性,InspiniaAdmin 2.5 Rails_Seed_Project通常会采用Bundler来管理依赖,通过Gemfile列出所有必要的gem(Ruby库)。这使得开发者能方便地安装和升级项目所依赖的库。 总的来说,...
- **Rake任务、插件和脚本的优化**:Rails 2.1对Rake任务进行了扩展,增加了更多的命令行工具和脚本来辅助开发流程,同时对插件系统的管理也进行了改进,使其更加稳定和可靠。 #### Ruby 1.9的兼容性 - **Ruby 1.9...
总的来说,`validates_timeliness` 是一个强大且灵活的日期和时间验证工具,它扩展了Rails的验证机制,帮助开发者更有效地管理日期和时间字段的验证规则,同时提供良好的用户体验。通过其丰富的功能和易于使用的API...
rails-javascript-integrations, JavaScript重 Rails 应用的渐进集成策略 Rails JavaScript集成策略注意:这比最后一个提交日期更新更新,因为大多数有趣的工作不在 master 分支上。为什么?模块化视图使用户界面的...