trabajar con dias,meses,aсos
#1

Buena mi pregunta es como se puede trabajar con dias,meses,aсos en pawn-mysql, estube viendo que en sql hay varios tipos de formatos para fechas, pero como hago para que pawn le quite dia en dia que pase ? nose si el settimer es capaz de contar un dia.

Me imagino que si settimer aguanta un dia, pues que cuando pase un dia le reste un dia en la tabla, asi no ?

Gracias.
Reply
#2

Es mas facil usar gettime o getdate
Reply
#3

SetTimer prбcticamente activa un proceso artificial (por asн decirlo), para ejecutar alguna funciуn. Sin embargo hay un proceso que estб siempre activo (y es el tiempo unix, no sй si estй realmente activo y solo se haya creado una forma de cifrar la fecha y hora en un formato que luego puede convertirse a un formato legible)

Ejemplo:

Utilizarбs PAWN por lo que puedes utilizar gettime(); o MySQL que tiene UNIX_TIMESTAMP(); (Ambas funciones hacen lo mismo por lo que es lo mismo utilizarlas, aunque la de MySQL es mбs compleja ya que permite agregar un formato dentro y opcional:

PHP код:
UNIX_TIMESTAMP('2015-11-13 10:20:19'); 
lo que te retornarнa: 1447431619, ahн en esos nъmeros estб la fecha "comprimida", por lo que puedes andarla de entero en entero y luego convertirla a string.

Para la conversiуn puedes utilizar este include: https://sampforum.blast.hk/showthread.php?tid=533385

Tiene funciуn para convertir una fecha determinada a unix, o convertir una fecha determinada en formato UNIX a formato legible (dнas, meses, aсos)

Ejemplo:

PHP код:
new DiaMesYear;
UnixToDate(1447431619DiaMesYear);
y ahora tienes el formato "1447431619" (unixen variables individuales:
printf("Dнa: %i"Dia);
printf("Mes: %i"Mes);
printf("Aсo: %i"Year); 
En conclusiуn: Existe una forma mбs eficiente que un SetTimer, puedes poner un SetTimer para comprobar si el tiempo ya pasу (comprobaciones de las variables que almacenen el tiempo unix).

Ademбs, tenemos estos datos:

Quote:

1 minute (60 seconds) is 60 * 1 = 60
2 minutes (120 seconds) is 60 * 2 = 120

1 hour (60 minutes) is 60 * 60 = 3600
2 hours (120 minutes) is 60 * 120 = 7200

1 day (24 hours) is 60 * 60 * 24 = 86400
2 days (48 hours) is 60 * 60 * 48 = 172800

1 week (7 days) is 60 * 60 * 24 * 7 = 604800
2 weeks (14 days) is 60 * 60 * 24 * 14 = 1209600

1 month (30 days) is 60 * 60 * 24 * 30 = 2592000
2 months (60 days) is 60 * 60 * 24 * 60 = 5184000

1 year (365 days) is 60 * 60 * 24 * 365 = 31536000
2 years (730 days) is 60 * 60 * 24 * 730 = 63072000

Por lo que si tenemos esto:

PHP код:
new unixActual DateToUnix(4,6,2016)+2592000
Asн que el tiempo unix que obtendrбs serб el de la fecha actual sumбndole 1 mes, y asн puedes restбrselo y operarle desde muchas formas rбpidamente.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)