¿Cómo puedo sacar sólo día, mes y año en fecha?

Tengo un datetime y quiero sacar los datos en día, mes y año, sin la
hora, a ser posible en castellano y en ese orden.

John S. escribió:

Tengo un datetime y quiero sacar los datos en día, mes y año, sin la
hora, a ser posible en castellano y en ese orden.

En tus vistas algo como:

<%= date_select(‘user’,‘birthdate’,:start_year => 1900,:end_year
=>Time.now.year,:order => [:day, :month, :year]) %>

y en el enviroment algo como
require ‘date’

class Date
MONTHNAMES = [
nil,
‘Enero’,
‘Febrero’,
‘Marzo’,
‘Abril’,
‘Mayo’,
‘Junio’,
‘Julio’,
‘Agosto’,
‘Septiembre’,
‘Octubre’,
‘Noviembre’,
‘Diciembre’
]
end

Gracias por responder.

Tengo esto (es para un PDF):

pdf.text(ticket.adquired_in + " el " + ticket.sales_date.to_s, :order =>
[:day, :month, :year], :left => 5)

Sin embargo, no me funciona. En cuanto a class Date, ¿tengo que crear el
modelo?

John S. wrote:

Tengo un datetime y quiero sacar los datos en día, mes y año, sin la
hora, a ser posible en castellano y en ese orden.

Time.strftime(”%a”), devuelve la abreviatura del día de la semana => Wed
Time.strftime(”%A”), devuelve el día de la semana => Wednesday
Time.strftime(”%b”), devuelve la abreviatura del mes => Apr
Time.strftime(”%B”), devuelve el nombre del mes => April
Time.strftime(”%c”), devuelve => Wed Apr 11 11:27:06 2007
Time.strftime(”%d”), devuelve el día del mes => 11
Time.strftime(”%H”), devuelve la hora en formato 24h => 11:27:06
Time.strftime(”%I”), devuelve la hora en formato 12h => 11:27:06
Time.strftime(”%j”), devuelve el día del año => 101
Time.strftime(”%m”), devuelve el mes del año => 04
Time.strftime(”%M”), devuelve el minuto => 27
Time.strftime(”%p”), devuelve AM o PM => AM
Time.strftime(”%W”), devuelve la semana del año
Time.strftime(”%w”), devuelve el día de la semana => 3
Time.strftime(”%x”), devuelve sólamente la fecha => 11/04/2007
Time.strftime(”%X”), devuelve sólamente la hora => 11:27:06
Time.strftime(”%y”), devuelve el año en dos dígitos => 07
Time.strftime(”%Y”), devuelve el año => 2007

de ahi podes hacer un array que corresponda un un numero de mes a un
String y haces la traduccion del dia o el mes :stuck_out_tongue:

Cómo modulo:

def es_month(date)
_months = [‘Enero’, ‘Febrero’, ‘Marzo’, ‘Abril’, ‘Mayo’, ‘Junio’ ,
‘Julio’, ‘Agosto’,‘Septiembre’, ‘Octubre’, ‘Noviembre’, ‘Diciembre’]
month = date.strftime(’%m’)
return _months[(month.to_i)-1]
end

def es_week_day(date)
_weekdays =
[‘Lunes’,‘Martes’,‘Miércoles’,‘Jueves’,‘Viernes’,‘Sabado’,‘Domingo’]
week_day = date.strftime(’%w’)
return _weekdays[week_day.to_i]
end

No es una solución muy elegante pero es independiente del sistema i18n
que
uses.
__
David Fernández
[email protected]

break is a memory!

Horacio B. wrote:

John S. wrote:

Tengo un datetime y quiero sacar los datos en día, mes y año, sin la
hora, a ser posible en castellano y en ese orden.

Time.strftime(”%a”), devuelve la abreviatura del día de la semana => Wed
Time.strftime(”%A”), devuelve el día de la semana => Wednesday
Time.strftime(”%b”), devuelve la abreviatura del mes => Apr
Time.strftime(”%B”), devuelve el nombre del mes => April
Time.strftime(”%c”), devuelve => Wed Apr 11 11:27:06 2007
Time.strftime(”%d”), devuelve el día del mes => 11
Time.strftime(”%H”), devuelve la hora en formato 24h => 11:27:06
Time.strftime(”%I”), devuelve la hora en formato 12h => 11:27:06
Time.strftime(”%j”), devuelve el día del año => 101
Time.strftime(”%m”), devuelve el mes del año => 04
Time.strftime(”%M”), devuelve el minuto => 27
Time.strftime(”%p”), devuelve AM o PM => AM
Time.strftime(”%W”), devuelve la semana del año
Time.strftime(”%w”), devuelve el día de la semana => 3
Time.strftime(”%x”), devuelve sólamente la fecha => 11/04/2007
Time.strftime(”%X”), devuelve sólamente la hora => 11:27:06
Time.strftime(”%y”), devuelve el año en dos dígitos => 07
Time.strftime(”%Y”), devuelve el año => 2007

de ahi podes hacer un array que corresponda un un numero de mes a un
String y haces la traduccion del dia o el mes :stuck_out_tongue:

Gracias, me ha sido de ayuda.

Sin embargo, para el tema de la traducción con Gettext no puedo hacerlo
como me comentas, porque si traduzco una string traduciré sólo esa
string, y quiero que se queden traducidos todos los meses del año, y no
sólo el del string.

Buenas, estoy teniendo un problema con la fecha.

Intento formatearla y que me devuelva ("%I:%M %p %d-%b-%y")

y me da el siguiente mensaje de error:

compile error
c:/ror/todo/public/…/config/…/app/views/categories/list.rhtml:11:
syntax error, unexpected tCONSTANT, expecting ‘)’
_erbout.concat “\t\t

”; _erbout.concat(( category[“created_on”]
Time.strftime("%I:%M %p %d-%b-%y") ).to_s); _erbout.concat “\n”

el codigo que utilizo es el siguiente:

<%= category["created_on"] Time.strftime("%I:%M %p %d-%b-%y") %>

PD: el tipo es TimeStamp

Desde ya muchas gracias.

Mauro

en al API de rails Module
ActiveSupport::CoreExtensions::Numeric::Time
te muestran las funciones para manipular los datos de tipo fecha
si quieres obtener el dia de la fecha actual => d = Day(Time.now)
para obtener el mes de la fecha actual => m = Month(Time.now)
y el año => y = Year(Time.now)

El 25 de julio de 2008 9:59, Mauro
Cosatto<[email protected]

escribió:

El Sunday 17 February 2008 19:27:02 John S. escribió:

Sin embargo, para el tema de la traducción con Gettext no puedo hacerlo
como me comentas, porque si traduzco una string traduciré sólo esa
string, y quiero que se queden traducidos todos los meses del año, y no
sólo el del string.

Para gettext mira el plugin gettext_localize
http://agilewebdevelopment.com/plugins/gettext_localize


Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
T) 902 021 404 F) 976 52 98 07 E) [email protected]

2008/7/25 Mauro C. [email protected]:

Time.strftime(“%I:%M %p %d-%b-%y”) ).to_s); _erbout.concat “\n”

Mauro

Ese código es incorrecto, por supuesto. Si bien el método puedes
haberlo encontrado escrito como Time.strftime() tienes que llamarlo
desde un objeto de tipo Time, y en tu caso ese objeto debe ser
category[“created_on”] (aunque no entiendo porqué utilizas la síntaxis
con []). El código que deberías utilizar, por lo tanto, sería:

<%= category["created_on"].strftime("%I:%M %p %d-%b-%y") %>

Pero una mejor forma de hacerlo sería (sobre todo si vas a utilizar el
mismo formato en otros lugares) utilizar el método to_s que
proporciona Rails.

Lo primero sería incluir en alguno de los inicializadores del
environment.rb un línea como:

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:hora12_fecha => ‘%I:%M %p %d-%b-%y’,
:hora24_fecha => ‘%H:%M %d-%b-%y’
)

Y luego utilizar en tus vistas:

<%= category["created_on"].to_s(:hora12_fecha) %>

Suerte.

2008/7/25 Mauro C. [email protected]:

Buenas, estoy teniendo un problema con la fecha.

Intento formatearla y que me devuelva (“%I:%M %p %d-%b-%y”)

Mauro, por favor, inicia un nuevo hilo para hacer consultas, no
secuestres un hilo anterior.


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.