getdate + x dias -
Ever_SH - 05.06.2015
Estou tentando fazer um sistema de banimento, quero salvar em uma string o dia em que o player serб desbanido.
Mas nгo estou conseguindo fazer essa parte. Quero fazer da seguinte forma: Dia/Mкs/Ano, eu sei pegar a data atual, mas quero saber como somar o nъmero de dias do ban a essa data.
Exemplo:
Eu bani o player hoje(05/06/2015), o banimento foi de 30 dias, ai quero saber que dia vai ser o desban, teria que ser 05/07/2015, mas o ъnico jeito que sei fazer, o resultado daria 35/06/2015.
Re: getdate + x dias -
ReyMysterio - 05.06.2015
Й melhor usar gettime. Alйm de ser mais rбpido dб menos trabalho.
Re: getdate + x dias -
zSuYaNw - 05.06.2015
Vocк pode usar timestamp:
https://sampforum.blast.hk/showthread.php?tid=254915
Re: getdate + x dias -
n0minal - 05.06.2015
Uso este sistema no meu servidor (
baseado em MySQL R39+), vou parar de usar isso e comeзar a usar o plugin CTime do Ryderґ...
De qualquer forma, vocк pode usar como uma base caso nгo queira usar o plugin
CTime Library.
Код:
#define DaysToSeconds(%0) (%0 * 86400)
GetDateFromTime(timestamp, string[32])
{
new query[128];
mysql_format(MySQL, query, 128, "SELECT FROM_UNIXTIME(%d,'%d/%m/%y')", timestamp);
new Cache:mysql_query(MySQL, query, true);
cache_get_row(0, 0, string);
return 1;
}
Exemplo de uso:
Код:
CMD:ban(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
new player, days;
if(!sscanf(params, "ud", player, days)) return SendClientMessage(playerid, -1, "Uso correto: /ban <playerid/nome><dias>
new unbandate = DaysToSeconds(days) + gettime());
//aqui vocк salva o unbandate, player etc...
}
Код:
public OnPlayerConnect(playerid)
{
//aqui vocк checa se o player estб banido.
{
new string[128];
format(string, 128, "Vocк estб banido atй o dia %s", GetDateFromTime(VariavelQueVocкSalvouOUnbanDate));
SendClientMessage(playerid, -1, string)
return Kick(playerid);
}
}
Re: getdate + x dias -
ViniBorn - 05.06.2015
Uma soluзгo bem simples й utilizar da seguinte forma : getdate();
A funзгo dessa forma te mostra a quantidade de dias desde o inнcio do ano.
Ex: Se hoje getdate = 10, amanhг serб 11.
Com algumas modificaзхes vocк terб um sistema 100% funcional.
PS: Dб pra criar uma funзгo que transforme esse getdate em DD/MM/AAAA, para que vocк possa exibir aos jogadores uma data, em vez de um nъmero como o citado acima.
Re: getdate + x dias -
n0minal - 05.06.2015
Quote:
Originally Posted by ViniBorn
Uma soluзгo bem simples й utilizar da seguinte forma : getdate();
A funзгo dessa forma te mostra a quantidade de dias desde o inнcio do ano.
Ex: Se hoje getdate = 10, amanhг serб 11.
Com algumas modificaзхes vocк terб um sistema 100% funcional.
PS: Dб pra criar uma funзгo que transforme esse getdate em DD/MM/AAAA, para que vocк possa exibir aos jogadores uma data, em vez de um nъmero como o citado acima.
|
Com timestamp o MySQL automaticamente retorna a string formatada em dia/mкs/ano como pedi no formato da query 'd/m/y':
Exemplo do meu script como fica (no padlock/cadeado):
Re: getdate + x dias -
ipsLuan - 05.06.2015
Tem alguns filterscripts, basta procurar que vocк acha uma base...
http://forum.sa-mp.com/showthread.ph...22#post1205522
https://sampforum.blast.hk/showthread.php?tid=477391
Este ъltimo ai eu recomendo.
Re: getdate + x dias -
Ever_SH - 05.06.2015
@ViniBorn
Isso nгo ia dar problema se desse ban em alguem no ultimo dia do ano?
@ipsLeon
Desculpe, nгo consegui entender direito o cуdigo
@Tуpico
Entrei no link do zSuYaNw e vi sobre Unix timestamps, ao pesquisar no ****** sobre isso para tentar achar um tуpico em portuguкs, achei isso:
https://sampforum.blast.hk/showthread.php?tid=347605
Agora o sistema funciona:
http://i.imgur.com/j4iTasf.jpg
Obrigado a todos