Quiero formatear un objeto de fecha para que pueda mostrar cadenas como "3rd July" o "1st October". No puedo encontrar una opción en Date.strftime para generar "rd" y "st". ¿Alguien sabe cómo hacer esto?Cómo formatear una fecha en ruby para incluir "rd" como en "3rd"
Respuesta
voy a repetir todos los demás, pero yo sólo te animo a descargar la gema activesupport
, por lo que sólo se puede utilizar como una biblioteca. No necesita todos los Rails para usar ordinalize
.
% gem install activesupport ... % irb irb> require 'rubygems' #=> true irb> require 'activesupport' #=> true irb> 3.ordinalize #=> "3rd"
No creo que Ruby tiene, pero si usted tiene rieles, intente lo siguiente: -
puts 3.ordinalize #=> "3rd"
También está disponible en Facetas. – Pesto
created_at.strftime("#{created_at.day.ordinalize} of %m, %y")
producirá "el 4 de Julio de 2009"
Tuve que agregar un # delante del {pero esto funcionó como un regalo ¡Gracias! – xenon
¿cómo ordenarías las variables de cadena? Necesito convertir% m, por ejemplo. – Batman
Esto es bueno cuando necesitas usar el formato atípico "4 de julio", pero no hay necesidad de ordinalizar a mano si estás usando el "4 de julio de 2009" convencional: 'created_at.to_date.to_s (: long_ordinal)' . –
A menos que seas usando Rails, añadir este ordinalize método (código descaradamente levantado de la fuente de carriles) para la clase Fixnum
class Fixnum
def ordinalize
if (11..13).include?(self % 100)
"#{self}th"
else
case self % 10
when 1; "#{self}st"
when 2; "#{self}nd"
when 3; "#{self}rd"
else "#{self}th"
end
end
end
end
A continuación, formatee la fecha de la siguiente manera:
> now = Time.now
> puts now.strftime("#{now.day.ordinalize} of %B, %Y")
=> 4th of July, 2009
Tenga en cuenta que esta respuesta está un poco desactualizada. [Así es como se ve ahora] (https://github.com/rails/rails/blob/3f96b6973b82ad17e443dd1d21be05996fb6fbf0/activesupport/lib/active_support/inflector/methods.rb#L312-L347) y [aquí está la extensión del 'Entero 'clase] (https://github.com/rails/rails/blob/08754f12e65a9ec79633a605e986d0f1ffa4b251/activesupport/lib/active_support/core_ext/integer/inflections.rb). – Dennis
parece que estoy revisando este tema por tercera vez, por lo que he actualizado mi GIST con algunos comentarios extra/uso.
https://gist.github.com/alterisian/4154152
Cheers, Ian.
No sé si lo hace mucho (cualquier?) Más rápido que el switch de los casos, pero he hecho una constante con las terminaciones:
DAY_ENDINGS = ["th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "st"]
A continuación, sólo lo utilizaron gustaría:
DAY_ENDINGS[date.mday]
como quería el final dentro de un
<span>th</span>
requieren 'ActiveSupport'
1.ordinal => 'st'
1.ordinalize => '1st'
- 1. En Ruby on Rails, ¿cómo puedo formatear una fecha con el sufijo "th", como en "Sun Oct 5th"?
- 2. ¿Cómo formatear una fecha en VisualForce?
- 3. ¿Cómo puedo formatear una fecha en Flash?
- 4. Formateo de la fecha en Unix para incluir el sufijo en el día (st, nd, rd y th)
- 5. jquery tmpl formatear una fecha?
- 6. ¿Cómo puedo formatear una fecha en mm/dd/aaaa en Ruby?
- 7. Formatear una fecha, permitiendo nulo
- 8. ¿Cómo formatear la fecha en xslt?
- 9. Formatear fecha sin año
- 10. ¿Cómo generar una fecha aleatoria en Ruby?
- 11. ¿Cómo formatear una cadena con flotadores en Ruby usando # {variable}?
- 12. ¿Cómo incluir archivos de datos en una Ruby Gem?
- 13. Formatear el código de Ruby en Vim
- 14. VBScript ¿Cómo puedo formatear la fecha?
- 15. ¿Cómo formatear una int como moneda en C#?
- 16. Cómo formatear la cadena de fecha y hora en C++
- 17. ¿Cómo formatear la cadena de fecha en java?
- 18. ¿Cómo puedo formatear una fecha procedente de MongoDB?
- 19. ¿Cómo formatear un tipo de fecha getUpdatedAt() en Symfony?
- 20. ¿Cómo formatear la fecha más fácilmente en PHP?
- 21. ¿Cómo conseguir incluir contenidos como una cadena?
- 22. Incluir archivos en una línea de comandos con Ruby
- 23. ¿Cómo puedo formatear la fecha en ISO usando Python?
- 24. ¿Cómo puedo formatear la fecha por localidad en Java?
- 25. Como incluir! Importante en jQuery
- 26. Se pueden formatear elementos en una JList como HTML
- 27. ¿Cómo puedo formatear una fecha json en formato dd/mm/aa en javascript?
- 28. cómo formatear la salida de cadena usando% en ruby?
- 29. Cómo crear XElement fecha en representación de fecha y hora como tipo xs: Fecha
- 30. ¿Cómo formatear una fecha y hora para una cadena usando boost?
Buen punto. También puede obtener esta funcionalidad desde las facetas (http: //facets.rubyforge.org) library - require 'facets' o, solo para este método, requiere 'facets/integer/ordinal' –
¿Cómo extraemos solo la ordinalización? Quiero hacer '' 3 th '' – Volte
Voltaje: '3.ordinalize.sub (/ \ w + /, ' \ 0')' – rampion