É isso aí… Hoje trago algo meio diferente, algo sobre programação.

Desde o dia que comecei a trabalhar na SISTEC como programador,venho me deparando com várias situações que a primeira vista parecem complicadas se serem resolvidos, mas que na verdade não. Basta um pouco de atenção e calma para que a situação esteja resolvida. Procurarei trazer de um pouco daquilo que tem sido minha experiência como programador.

php

Vou começar a falar de uma função em PHP que permite somar e subtrair um intervalo de tempo, quer seja dia, hora, mês ou mesmo um ano. Função esta que poderá ser muito útil quando estamos a trabalhar com datas.

Na verdade não existe uma função especifica em PHP capaz de fazer isso… mas o programador pode criar a sua própria função e é o que faremos aqui.

Nota: A partir deste momento, estamos assumindo que todas as funções serão guardadas no ficheiro com o nome de: funcoes_php.php

<?php
// Função da adicionar dias na data de Hoje
function adi_dia($dias, $fuso_horario,$formato){
$fuso = 3600*$fuso_horario;
$novo_horario = time() + $fuso + ($dias*24*60*60);
$nova_data = gmdate($formato, $novo_horario);
return $nova_data;
}
?>

Como podemos notar, a nossa função possui 3 parâmetros: $dias, $fuso_horario e $formato. Onde:

$dias = Número de dias ( positivo para adicionar ou negativo para subtrair).

$fuso_horario = Fuso horário (Caso de Angola é +1)

$formato =formao da apresentação da data. Para mais informações visite: http://au2.php.net/manual/pt_BR/function.gmdate.php

A variável $fuso irá guardar o resultado da multiplicação do seu fuso horario por 3600 que equivale a uma hora.

$novo_horario irá guardar o data e hora actual… e $nova_data, com ajuda da função do PHP gmdate, irá transformar a data e hora actual ($novo_horario) numa data normal.

Exemplo de Utilização:

<?php
include 'funcoes_php.php';
$dias = 5; // Número de dias a acrescentar
$fuso_horario = 1; // 1  para Angola
$formato = 'd-m-Y'; // formao da apresentação da data
$hoje = adi_dia($dias,$fuso_horario,$formao); // Executando a função
echo $hoje; // Imprimindo o resultado
?>

REport ALL Error or Issue ;-)