Sign in to follow this  
n3wage

Usando Timestamp

Recommended Posts

Introdução:

Tenho certeza que muitos não sabem o quão útil timestamp é, Por isso resolvi fazer esse tutorial (e tambem por uma duvida postada pelo usuário BeYourself).

Conteúdos deste tutorial

  • 1. Introdução
    2. Conteúdos deste tutorial (aqui :P)
    3. Oque é.
    4. Como e onde usa-los
    5. Alguns cálculos uteis
    6. Exemplos Práticos
    7. Finalização

Oque é

Timestamp é, basicamente, Os segundos que se passaram desde 1 de Janeiro de 1970, é muito mais pratico usar timestamp em vez de calcular que dia sera daqui 2597 horas, por exemplo.

Exemplos de timestamp's:

1434667957 // Data de criação deste tutorial :P

1                  //1 de Janeiro de 1970

Como e onde usa-los

Você pode usá-los em sistemas que envolvam cálculos com tempos ( VIP Temporario, Admin temporario etc ), Você poderia calcular manualmente a data do 'vencimento' dos 'produtos' do seu script, ou usar timestamp :P

Pegar o timestamp atual é muito simples, Basta usar a função getRealTime:

getRealTime().timestamp -- Pronto, você já tem o timestamp atual 

Dica: você pode usar o primeiro parâmetro da função getRealTime junto com um timestamp para saber o dia, mes, hora etc exatos(as) do timestamp fornecido, veja os exemplos (↓).

Alguns cálculos uteis

1 Minuto (60 segundos) é 60 * 1 = 60

2 Minutos (120 segundos) is 60 * 2 = 120

1 Hora (60 minutos) é 60 * 60 = 3600

2 Horas (120 minutos) é 60 * 120 = 7200

1 Dia (24 horas) é 60 * 60 * 24 = 86400

2 Dias (48 horas) é 60 * 60 * 48 = 172800

1 Semana (7 dias) é 60 * 60 * 24 * 7 = 604800

2 Semana (14 dias) é 60 * 60 * 24 * 14 = 1209600

1 Mês (30 dias) é 60 * 60 * 24 * 30 = 2592000

2 Meses (60 dias) é 60 * 60 * 24 * 60 = 5184000

1 Ano (365 dias) é 60 * 60 * 24 * 365 = 31536000

2 Anos (730 dias) é 60 * 60 * 24 * 730 = 63072000

Exemplos Práticos

--Calcular o timestamp daqui x dias 
function calcularDias ( thePlayer, cmd, dias ) 
    if dias then 
        local dias = tonumber ( dias ) 
        local calculo = getRealTime().timestamp + ( dias * 86400 ) 
        outputChatBox ( "Timestamp daqui "..dias.." dias: "..calculo, thePlayer, 0, 255, 0 ) 
        --[[ 
            calculo = getRealTime().timestamp + ( dias * 86400 ) 
             
            getRealTime().timestamp  =  pegamos o timestamp atual 
            +                        =  somamos com um valor fornecido ao lado → 
            dias                     =  variavel que guarda o parâmetro fornecido pelo jogador ( /dias [DIAS] ) 
            * 86400                  =  dividimos por 86400, que é um dia (24 horas) 
        --]] 
    else 
        outputChatBox ( "Forneça os dias !", thePlayer, 255, 0, 0 ) 
    end 
end 
addCommandHandler ( "dias", calcularDias ) 

-- Descobrir data exata de um timestamp 
function data ( thePlayer, cmd, timestamp ) 
    if timestamp then 
        local timestamp = tonumber ( timestamp ) 
        local realTime = getRealTime(timestamp) 
        local data = string.format ( "%02d/%02d/%d - %02d:%02d", realTime.monthday, realTime.month +1, realTime.year +1900, realTime.hour, realTime.minute ) 
        outputChatBox ( "Data do timestamp "..timestamp..": "..data, thePlayer, 0, 255, 0 ) 
    else 
        outputChatBox ( "Forneça um timestamp !", thePlayer, 255, 0, 0 ) 
    end 
end 
addCommandHandler ( "data", data, false, false ) 

Finalização

Este é meu primeiro tutorial, Então ainda não sei bem como explicar de uma maneira clara, Lembrando que as explicações são bem lineares, feitas exatamente para quem não entende do assunto (todos eu presumo), Os códigos não foram testados então qualquer problema com ele, com escrita, ou qualquer parte deste tópico comente que vou arrumar o mais rápido possivel :P, Também falem oque acharam do tópico e dicas para melhorar.

Edited by Guest
  • Thanks 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.