Respostas:
O tempo passaria pelo tempo do seu servidor. Uma solução fácil para isso é definir manualmente o fuso horário usando date_default_timezone_set
antes que as funções date()
ou time()
sejam chamadas.
Estou em Melbourne, na Austrália , então tenho algo parecido com isto:
date_default_timezone_set('Australia/Melbourne');
Ou outro exemplo é LA - US :
date_default_timezone_set('America/Los_Angeles');
Você também pode ver em que fuso horário o servidor está atualmente via:
date_default_timezone_get();
Então, algo como:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
Portanto, a resposta curta para sua pergunta seria:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Todos os horários seriam no fuso horário que você acabou de definir :)
// Simply:
$date = date('Y-m-d H:i:s');
// Or:
$date = date('Y/m/d H:i:s');
// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';
/**
* This time is based on the default server time zone.
* If you want the date in a different time zone,
* say if you come from Nairobi, Kenya like I do, you can set
* the time zone to Nairobi as shown below.
*/
date_default_timezone_set('Africa/Nairobi');
// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');
// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.
Para uma referência de fuso horário, consulte Lista de fusos horários suportados .
Desde o PHP, 5.2.0
você pode usar a DateTime()
classe:
use \Datetime;
$now = new DateTime();
echo $now->format('Y-m-d H:i:s'); // MySQL datetime format
echo $now->getTimestamp(); // Unix Timestamp -- Since PHP 5.3
E para especificar o timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Datatime
espaço para nome; Não me lembro se foi esse o caso em 2013 e não escrevo nenhum código PHP há anos. Independentemente disso, sua sugestão parece estar correta, então obrigado novamente.
Referência: Aqui está um link
Isso pode ser mais confiável do que simplesmente adicionar ou subtrair o número de segundos em um dia ou mês a um carimbo de data / hora devido ao horário de verão.
O código PHP
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
Time () do PHP retorna um timestamp atual do Unix. Com isso, você pode usar a função date () para formatá-la de acordo com suas necessidades.
$date = date('Format String', time());
Como Paolo mencionou nos comentários, o segundo argumento é redundante. O seguinte snippet é equivalente ao acima:
$date = date('Format String');
Você pode usar a $_SERVER['REQUEST_TIME']
variável (disponível desde o PHP 5.1.0) ou a time()
função para obter o registro de data e hora atual do Unix.
time()
função é independente do fuso horário. (Então, chamando date_default_timezone_set("your-particular-timezone");
antes não terá efeito.)
Você pode usar a $_SERVER['REQUEST_TIME']
variável ou a time()
função. Ambos retornam um carimbo de data / hora Unix.
Na maioria das vezes, essas duas soluções produzem exatamente o mesmo carimbo de data e hora do Unix . A diferença entre eles é que $_SERVER['REQUEST_TIME']
retorna o carimbo de data e hora da solicitação mais recente do servidor etime()
retorna o horário atual. Isso pode criar pequenas diferenças na precisão, dependendo da sua aplicação, mas na maioria dos casos, essas duas soluções devem ser suficientes.
Com base no seu código de exemplo acima, você desejará formatar essas informações depois de obter o carimbo de data e hora do Unix . O tempo Unix não formatado se parece com:1232659628
Portanto, para obter algo que funcione, você pode usar a date()
função para formatá-lo.
Uma boa referência para maneiras de usar a date()
função está localizada no Manual do PHP .
Como exemplo, o código a seguir retorna uma data parecida com esta 01/22/2009 04:35:00 pm
:
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
?
A função de data do PHP pode fazer esse trabalho.
Descrição:
string date(string $format [, int $timestamp = time()])
Retorna uma string formatada de acordo com a string de formato especificada usando o carimbo de data / hora inteiro especificado ou a hora atual se nenhum carimbo de data / hora for fornecido.
Exemplos:
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('d-m-Y H:i:s');
Atualizar
//Also get am/pm in datetime:
echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am
Para o formato da data, a função PHP date () é útil.
é muito simples
echo $ date = date ('Ymd H: i: s');
Para o novo programador PHP, podemos confundir por que existem muitos métodos para obter data e hora atuais e qual usar em seu projeto.
1. date
método (PHP 4, PHP 5, PHP 7)
Esta é a maneira mais comum e fácil de obter a data e a hora no php.
// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');
// Prints something like: Monday
echo date("l");
// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* use the constants in the format parameter */
// prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// prints something like: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
Você pode aprender mais sobre isso aqui
2. DateTime
classe (PHP 5> = 5.2.0, PHP 7)
Quando você deseja usar PHP com OOP, esta é a melhor maneira de obter data e hora.
<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Using a UNIX timestamp. Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Você pode aprender mais sobre isso aqui
3. Pacote de data e hora do carbono
se você estiver usando o Composer , o Laravel , o Symfony ou qualquer outra estrutura, essa é a melhor maneira de obter a data e a hora. Além disso, este pacote estende a classe DateTime no php para que você use todo o método na classe Datetime. Isso inclui estruturas como o laravel, para que você não precise instalá-lo separadamente.
printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); // automatically converted to string
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();
// Carbon embed 823 languages:
echo $tomorrow->locale('fr')->isoFormat('dddd, MMMM Do YYYY, h:mm');
echo $tomorrow->locale('ar')->isoFormat('dddd, MMMM Do YYYY, h:mm');
$officialDate = Carbon::now()->toRfc2822String();
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;
$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');
$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');
if (Carbon::now()->isWeekend()) {
echo 'Party!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'
Você pode aprender mais sobre isso aqui
Espero que isso ajude e, se você conhece outra maneira de obter a data e a hora, fique à vontade para editar a resposta.
Usar:
$date = date('m/d/Y h:i:s a', time());
Funciona.
echo date("d-m-Y H:i:sa");
Esse código obterá a data e a hora do servidor em que o código é executado.
Você também pode usar este formato:
$date = date("d-m-Y");
Ou
$date = date("Y-m-d H:i:s");
De acordo com o artigo Como obter data e hora atuais (NOW) com PHP , existem duas maneiras comuns de obter a data atual. Para obter a data e hora atuais (agora) com o PHP, você pode usar a date
classe com qualquer versão do PHP ou melhorar a datetime
classe com o PHP> = 5.2.
Várias expressões de formato de data estão disponíveis aqui.
Essa expressão retornará AGORA no formato Y-m-d H:i:s
.
<?php
echo date('Y-m-d H:i:s');
?>
Essa expressão retornará AGORA no formato Y-m-d H:i:s
.
<?php
$dt = new DateTime();
echo $dt->format('Y-m-d H:i:s');
?>
<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>
date(format, timestamp)
A date
função retorna uma cadeia de caracteres formatada de acordo com a cadeia de formato especificada usando o registro de data e hora inteiro especificado ou o horário atual se nenhum registro de data e hora for fornecido. Em outras palavras, timestamp
é opcional e o padrão é o valor de time ().
E os parâmetros são -
formato - obrigatório. Especifica o formato do registro de data e hora
registro de data e hora - (Opcional) Especifica um registro de data e hora. O padrão é a data e hora atuais
O parâmetro de formato necessário da date()
função especifica como formatar o date (or time)
.
Aqui estão alguns caracteres que são comumente usados para datas:
Outros caracteres, como "/", ".", or "-"
também podem ser inseridos entre os caracteres para adicionar formatação adicional.
O exemplo abaixo formata a data de hoje de três maneiras diferentes:
<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>
Se você quiser uma escala de tempo diferente, use:
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
date_default_timezone_set("Asia/Calcutta");
echo date("Y/m/d H:i:s");
O formato da data também depende:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
Você pode usar este código:
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
Outra maneira simples é obter o registro de data e hora da data e hora atuais. Use a função mktime () :
$now = mktime(); // Return timestamp of the current time
Em seguida, você pode converter isso para outro formato de data:
//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);
Mais formatos de data estão aqui: http://php.net/manual/en/function.date.php
Muito simples
date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());
// Set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');
// Prints something like: Monday
echo date("l");
// Prints something like: Monday 8th of August 2016 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// Prints: July 1, 2016 is on a Saturday
echo "July 1, 2016 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2016));
/* Use the constants in the format parameter */
// Prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// Prints something like: 2016-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
Normalmente, essa função para data é útil para todos: date ("Y / m / d");
Mas o tempo é algo diferente, porque a função de tempo depende da versão do PHP ou da data do sistema.
Então, provavelmente, use-o assim para obter nosso próprio fuso horário:
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');
Esta função mostra o tempo de 24 horas.
Aqui estão alguns caracteres que são comumente usados por vezes:
a - Ante meridiem em minúsculas e Post meridiem (am ou pm)
Obtenha seu fuso horário
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
Verifique isso (opcional)
<?php
$d = mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
Para data
<?php
echo "Today is " . date("Y/m/d") . ;
echo "Today is " . date("Y.m.d") . ;
echo "Today is " . date("Y-m-d") . ;
echo "Today is " . date("l");
?>
Aqui estão alguns caracteres que são comumente usados para datas:
.
em date("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());