Introducir fecha y poder meter año con 2 caracteres

adonet Seguir

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Oct 2012
Mensajes
66
Tengo un pequeño problema, en un formulario tengo un campo tipo date, la cosa es que al introducir el año debo escribir 2017 y aveces algún usuario se cuela y en vez de escribir 2017, sólo escribe 17 y el año que se captura es 0017

¿Se os ocurre alguna manera de que se pueda escribir 17 y automáticamente lo entienda como 2017 ?
 

sondeoh

Eta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
23 Nov 2012
Mensajes
1.411
Pon el ejemplo de tu código así es más fácil ayudarte...
 

epicmedia

Gamma
SEO
Verificación en dos pasos desactivada
Desde
22 May 2016
Mensajes
481
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Verifica que sea una fecha válida, si no arroja error.

O detecta si son 2 caracteres entonces le agregas el "20".

Yo me iría por la primera opción.
 

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
PHP:
$fecha=98;  //ejemplo de 1998
if ($fecha <= 40 ){
$fecha="20".$fecha;
}
if ($fecha > 40 && $fecha <= 99 ){
$fecha="19".$fecha;
}

echo $fecha;
 

rsantiestevan

Beta
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
29 May 2016
Mensajes
60
Una funcion en JS que cheque la el ano y que lo cambie cuando detecte que no es el esperado.
 

sevilla666

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Nov 2016
Mensajes
192
Una funcion en JS que cheque la el ano y que lo cambie cuando detecte que no es el esperado.

Tienes razón, pero como he visto que esta en el foro php, se lo he puesto en php.
De todas formas el código que eh puesto es prácticamente el mismo php que javascript
 

rsantiestevan

Beta
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
29 May 2016
Mensajes
60
Yo creo que si quiere por ejemplo evitar que llegue al servidor ya con un error lo mejor es manejarlo a nivel de javascript con un codigo o anadiendo una libreria que lo valide y que le deje al usuario el mesaje de que su fecha es no valida. Asi se evita el codigo en fechas del lado del servidor.
 

adonet

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Oct 2012
Mensajes
66
Solucionado con javascript!
llamo a esta función desde un onblur o onchange del input type="date"

<script type="text/javascript">
// por si en vez de meter 2016 meten 16 y yo lo sustituyo por 2016
function revisar_fecha(campo){
fecha_introducida = campo.value;
//devuelve la fecha en ingles 0016-01-01
ano_introducido = fecha_introducida.substring(0,2);
if (ano_introducido == "00")
{
fecha_a_devolver = "20"+fecha_introducida.substring(2);
campo.value = fecha_a_devolver;
}

}

</script>

y luego lo compruebo desde php

- - - Actualizado - - -

La mejoro:

<script type="text/javascript">
// por si en vez de meter 2016 meten 16 y yo lo sustituyo por 2016
function revisar_fecha(campo){
fecha_introducida = campo.value;
//devuelve la fecha en ingles 0016-01-01
ano_introducido = fecha_introducida.substring(0,2);
var segunda_parte_del_ano = parseInt(fecha_introducida.substring(2,4));

if (ano_introducido == "00") // si sólo ha metido 16 o 98 // 2016 o 1998
{
if (segunda_parte_del_ano < 40) // eso es que es del año 2000, hasta el 2040
{
campo.value = "20"+fecha_introducida.substring(2);
}else{
campo.value = "19"+fecha_introducida.substring(2);
}
}

}

</script>
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba