Respuestas:
La hora pasaría por la hora de su servidor. Una solución fácil para esto es establecer manualmente la zona horaria utilizando date_default_timezone_set
antes de que se invoquen las funciones date()
o time()
.
Estoy en Melbourne, Australia , así que tengo algo como esto:
date_default_timezone_set('Australia/Melbourne');
O otro ejemplo es LA - EE . UU . :
date_default_timezone_set('America/Los_Angeles');
También puede ver en qué zona horaria se encuentra actualmente el servidor a través de:
date_default_timezone_get();
Entonces algo como:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
Entonces la respuesta corta para su pregunta sería:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Entonces todas las horas serían para la zona horaria que acaba de configurar :)
// 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 obtener una referencia de zona horaria, consulte la Lista de zonas horarias admitidas .
Desde PHP 5.2.0
puedes usar la DateTime()
clase:
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
Y para especificar el timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Datatime
espacio de nombres; No recuerdo si ese fue el caso en 2013 y no he escrito ningún código PHP en años. De todos modos, su sugerencia parece ser correcta, así que gracias de nuevo.
Referencia: aquí hay un enlace
Esto puede ser más confiable que simplemente sumar o restar la cantidad de segundos en un día o un mes a una marca de tiempo debido al horario de verano.
El 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)
El tiempo de PHP () devuelve una marca de tiempo actual de Unix. Con esto, puede usar la función date () para formatearlo según sus necesidades.
$date = date('Format String', time());
Como Paolo mencionó en los comentarios, el segundo argumento es redundante. El siguiente fragmento es equivalente al anterior:
$date = date('Format String');
Puede usar la $_SERVER['REQUEST_TIME']
variable (disponible desde PHP 5.1.0) o la time()
función para obtener la marca de tiempo actual de Unix.
time()
función es independiente de la zona horaria. (Por lo tanto, llamar date_default_timezone_set("your-particular-timezone");
antes no tendrá ningún efecto).
Puede usar tanto la $_SERVER['REQUEST_TIME']
variable como la time()
función. Ambos devuelven una marca de tiempo Unix.
La mayoría de las veces, estas dos soluciones producirán exactamente la misma marca de tiempo de Unix . La diferencia entre estos es que $_SERVER['REQUEST_TIME']
devuelve la marca de tiempo de la solicitud del servidor más reciente y time()
la hora actual. Esto puede crear pequeñas diferencias en la precisión según su aplicación, pero para la mayoría de los casos, ambas soluciones deberían ser suficientes.
Según su código de ejemplo anterior, querrá formatear esta información una vez que obtenga la marca de tiempo de Unix . El tiempo Unix sin formato se ve así:1232659628
Entonces, para obtener algo que funcione, puede usar la date()
función para formatearlo.
Una buena referencia para las formas de usar la date()
función se encuentra en el Manual de PHP .
Como ejemplo, el siguiente código devuelve una fecha similar a esta 01/22/2009 04:35:00 pm
:
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
?
La función de fecha de PHP puede hacer este trabajo.
Descripción:
string date(string $format [, int $timestamp = time()])
Devuelve una cadena formateada de acuerdo con la cadena de formato dada utilizando la marca de tiempo entera o la hora actual si no se proporciona ninguna marca de tiempo.
Ejemplos:
$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');
Actualizar
//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 el formato de fecha, la función date () de PHP es útil.
es muy simple
echo $ fecha = fecha ('Ymd H: i: s');
Para el nuevo programador PHP podría confundir por qué hay muchos métodos para obtener la fecha y hora actuales y cuál usar en su proyecto.
1. date
método (PHP 4, PHP 5, PHP 7)
Esta es la forma más común y más fácil de obtener la fecha y la hora en 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));
Puedes aprender más sobre esto aquí
2. DateTime
clase (PHP 5> = 5.2.0, PHP 7)
cuando desee usar PHP con OOP, esta es la mejor manera de obtener la fecha y la 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";
?>
Puedes aprender más sobre esto aquí
3. Paquete de tiempo de fecha de carbono
Si está utilizando Composer , Laravel , Symfony o cualquier otro marco, esta es la mejor manera de obtener la fecha y la hora. Además, este paquete extiende la clase DateTime en php para que use todo el método en la clase Datetime. Esto incorpora marcos como laravel para que no tenga que instalarlo por separado.
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'
Puedes aprender más sobre esto aquí
Espero que esto ayude y si conoce alguna otra forma de obtener la fecha y la hora, no dude en editar la respuesta.
Utilizar:
$date = date('m/d/Y h:i:s a', time());
Funciona.
echo date("d-m-Y H:i:sa");
Este código obtendrá la fecha y hora del servidor en el que se ejecuta el código.
También puedes usar este formato:
$date = date("d-m-Y");
O
$date = date("Y-m-d H:i:s");
Según el artículo Cómo obtener la fecha y hora actual (AHORA) con PHP , hay dos formas comunes de obtener la fecha actual. Para obtener la fecha y hora actual (ahora) con PHP, puede usar la date
clase con cualquier versión de PHP, o mejor la datetime
clase con PHP> = 5.2.
Varias expresiones de formato de fecha están disponibles aquí.
Esta expresión volverá AHORA en formato Y-m-d H:i:s
.
<?php
echo date('Y-m-d H:i:s');
?>
Esta expresión volverá AHORA en 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)
La date
función devuelve una cadena formateada de acuerdo con la cadena de formato dada usando la marca de tiempo entera dada o la hora actual si no se proporciona ninguna marca de tiempo. En otras palabras, timestamp
es opcional y su valor predeterminado es el tiempo ().
Y los parámetros son:
formato: obligatorio. Especifica el formato de la marca de tiempo
marca de tiempo - (Opcional) Especifica una marca de tiempo. El valor predeterminado es la fecha y hora actuales
El parámetro de formato requerido de la date()
función especifica cómo formatear el date (or time)
.
Aquí hay algunos caracteres que se usan comúnmente para fechas:
También "/", ".", or "-"
se pueden insertar otros caracteres, como, entre los caracteres para agregar formato adicional.
El siguiente ejemplo formatea la fecha de hoy de tres maneras 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");
?>
Si desea una escala de tiempo diferente, utilice:
$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");
El formato de fecha también depende:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
Puedes usar este código:
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
Otra forma simple es tomar la marca de tiempo de la fecha y hora actuales. Utilice la función mktime () :
$now = mktime(); // Return timestamp of the current time
Luego puede convertir esto a otro formato de fecha:
//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);
Más formatos de fecha están aquí: http://php.net/manual/en/function.date.php
Muy simple
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, esta función para la fecha es útil para todos: fecha ("A / m / d");
Pero el tiempo es algo diferente, porque la función de tiempo depende de la versión de PHP o de la fecha del sistema.
Probablemente lo use así para obtener nuestra propia zona horaria:
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');
Esta función muestra el tiempo de 24 horas.
Aquí hay algunos caracteres que se usan comúnmente por momentos:
a - Minúsculo Ante meridiem y Post meridiem (am o pm)
Obtenga su zona horaria
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
Mira esto (opcional)
<?php
$d = mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
Para la fecha
<?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");
?>
Aquí hay algunos caracteres que se usan comúnmente para fechas:
.
en date("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());