当前位置: 首页 > news >正文

032 文本框中的时间格式

Time in Text Field

Although Rails does allow you to edit time attributes with text fields, it's not very flexible. In this episode you will learn how to use a virtual attribute to format the time to your liking.
 
虽然Rails允许你通过文本框来编辑时间属性,但是灵活性不是很高。这一节我们来学习如何用虚拟属性将时间输入变成你喜欢的格式。
 
一般情况下我们使用datetime_select来选择时间:
<%= f.datetime_select :time%>
现在我们用<%= f.text_field :virture_time%>
在模型类中定义:
def virture_time
   time.to_s(:db)
end
 
def virture_time=(vt)
  self.time=Time.parse(vt)
end
 
这样设置了虚拟属性之后就可以分析输入的时间格式,转换为db格式的时间进行存储了。
 
譬如可以输入may 23 at 8:00
 
如果还想看到更多精彩的关于时间的输入方式。可以使用chronic gem.
Chronic is a natural language date/time parser written in pure Ruby.
 
chronic是一个用来分析自然语言表达时间的工具。纯ruby语言编写。
更多内容请参见[url]http://chronic.rubyforge.org/[/url]
 
另外假如在输入时间格式的时候输的是一个错误的格式。
可以将model中的代码改成下面这样:
 
# models/task.rb
def virtual_time
  @virtual_time || time.to_s(:db)
end
def virtual_time=(vt)
  @virtual_time = vt
self.time = Time.parse(vt) rescue ArgumentError @time_invalid = true end




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/132083,如需转载请自行联系原作者

相关文章:

  • hdu 4012 Paint on a Wall
  • Android开发者指南(11) —— Optimizing Apps for Android 3.0
  • C#获取当前路径的7种方法
  • android116 轮播 viewPager实现
  • 参加虚拟化达人训练营的体会
  • 转载: 关于ruby中 %Q, %q, %W, %w, %x, %r, %s 的用法
  • django专题—安装、创建项目、添加应用
  • 自定义的asp.net翻页控件
  • python 数学运算符
  • 标题一定要长~~~~长~~~~~~~~~~~~~~长~~~~~~~~
  • python 中set模块的用法
  • Turbo C 2.0集成开发环境的使用
  • Ajax on Rails 2. The Eras of Web Development
  • 创建按钮的两种方法
  • JavaScript对象知识点总结
  • 【Linux系统编程】快速查找errno错误码信息
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CentOS 7 防火墙操作
  • express如何解决request entity too large问题
  • Java深入 - 深入理解Java集合
  • leetcode-27. Remove Element
  • MySQL几个简单SQL的优化
  • SQL 难点解决:记录的引用
  • Unix命令
  • 阿里云应用高可用服务公测发布
  • 警报:线上事故之CountDownLatch的威力
  • 三分钟教你同步 Visual Studio Code 设置
  • 收藏好这篇,别再只说“数据劫持”了
  • 思否第一天
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • !!java web学习笔记(一到五)
  • ![CDATA[ ]] 是什么东东
  • # 计算机视觉入门
  • #### go map 底层结构 ####
  • ${ }的特别功能
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (八)c52学习之旅-中断实验
  • (二)fiber的基本认识
  • (一)Java算法:二分查找
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)Sql Server 保留几位小数的两种做法
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net mvc总结
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @ConditionalOnProperty注解使用说明
  • @EnableAsync和@Async开始异步任务支持
  • @RequestMapping处理请求异常
  • [ C++ ] STL_list 使用及其模拟实现
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • []我的函数库
  • [04] Android逐帧动画(一)