web-dev-qa-db-fra.com

Comment obtenir la date et l'heure actuelles en PHP?

Quelle fonction PHP peut renvoyer la date/heure actuelle?

731
Mike

Le temps passerait par votre temps de serveur. Une solution de contournement simple consiste à définir manuellement le fuseau horaire à l’aide de date_default_timezone_set avant que les fonctions date() ou time() soient appelées.

Je suis à Melbourne, Australie donc j'ai quelque chose comme ça:

date_default_timezone_set('Australia/Melbourne');

Ou un autre exemple est LA - US :

date_default_timezone_set('America/Los_Angeles');

Vous pouvez également voir le fuseau horaire actuel du serveur via:

date_default_timezone_get();

Donc, quelque chose comme:

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

Donc, la réponse courte à votre question serait:

// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());

Ensuite, toutes les heures seraient au fuseau horaire que vous venez de définir :)

564
NJ.
// 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.

Pour une référence de fuseau horaire, voir Liste des fuseaux horaires pris en charge.

435

Depuis PHP 5.2.0, vous pouvez le faire en utilisant OOP et DateTime() ainsi (bien sûr si vous préférez OOP):

$now = new DateTime();
echo $now->format('Y-m-d H:i:s');    // MySQL datetime format
echo $now->getTimestamp();           // Unix Timestamp -- Since PHP 5.3

Et pour spécifier la timezone:

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->getTimezone();
171
Mahdi

Référence: Voici un lien

Cela peut être plus fiable que simplement ajouter ou soustraire le nombre de secondes d'un jour ou d'un mois à un horodatage en raison de l'heure d'été.

Le code 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)
81
ShapCyber

Vous pouvez utiliser la variable $_SERVER['REQUEST_TIME'] (disponible depuis PHP 5.1.0) ou la fonction time() pour obtenir l’horodatage Unix actuel.

58
Gumbo

Time () de PHP renvoie un horodatage Unix en cours. Avec cela, vous pouvez utiliser la fonction date () pour l’adapter à vos besoins.

$date = date('Format String', time());

Comme Paolo l'a mentionné dans les commentaires, le deuxième argument est redondant. L'extrait suivant est équivalent à celui ci-dessus:

$date = date('Format String');
58
Rob Hruska

Vous pouvez utiliser à la fois la variable $_SERVER['REQUEST_TIME'] ou la fonction time(). Tous les deux renvoient un timestamp Unix. 

La plupart du temps, ces deux solutions donneront exactement la même chose Unix Timestamp . La différence entre ceux-ci est que $_SERVER['REQUEST_TIME'] renvoie l'horodatage de la demande de serveur la plus récente et time() renvoie l'heure actuelle. Cela peut créer des différences mineures de précision en fonction de votre application, mais dans la plupart des cas, ces deux solutions devraient suffire.

Selon l'exemple de code ci-dessus, vous souhaiterez formater ces informations une fois que vous aurez obtenu le Unix Timestamp . Unformatted heure Unix ressemble à: 1232659628

Donc, pour obtenir quelque chose qui fonctionnera, vous pouvez utiliser la fonction date() pour le formater.

Une bonne référence pour savoir comment utiliser la fonction date() se trouve dans le manuel PHP Manual .

Par exemple, le code suivant renvoie une date qui ressemble à ceci: 01/22/2009 04:35:00 pm:

echo date("m/d/Y h:i:s a", time());
45

La fonction date de PHP peut faire ce travail.

rendez-vous amoureux()

La description:

string date(string $format [, int $timestamp = time()])

Retourne une chaîne formatée en fonction de la chaîne de format donnée en utilisant l'horodatage entier donné ou l'heure actuelle si aucun horodatage n'est donné.

Exemples:

$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)
43
Subodh Ghulaxe
 $date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
 echo $date->format('d-m-Y H:i:s');

Mettre à jour

 //Also get am/pm in datetime:
 echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am

Pour le format de date, PHP date () Function est utile.

23
Kailas

Utilisation:

$date = date('m/d/Y h:i:s a', time());

Ça marche.

19
Mike
echo date("d-m-Y H:i:sa");

Ce code obtiendra la date et l'heure du serveur sur lequel le code est exécuté.

16

Vous pouvez aussi utiliser ce format:

$date = date("d-m-Y");

Ou

$date = date("Y-m-d H:i:s");
14
Kalaivani M

Selon l'article Comment obtenir l'heure actuelle (NOW) avec PHP, il existe deux méthodes courantes pour obtenir la date actuelle. Pour obtenir la date/heure actuelle (maintenant) avec PHP, vous pouvez utiliser la classe date avec n’importe quelle version PHP ou mieux la classe datetime avec PHP> = 5.2.

Diverses expressions de format de date sont disponibles ici.

Exemple utilisant la date

Cette expression renverra NOW au format Y-m-d H:i:s.

<?php
    echo date('Y-m-d H:i:s');
?>

Exemple d'utilisation de la classe datetime

Cette expression renverra NOW au format Y-m-d H:i:s.

<?php
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>
13
David
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

Des impressions comme ça 

Dimanche 9 décembre 2012  

12
AMB

c'est très simple

echo $ date = date ('Y-m-d H: i: s');

12
Juned Ansari
<?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)
?>
11
Mr. HK
date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");
9
Dariusz J
date(format, timestamp)

La fonction date renvoie une chaîne formatée en fonction de la chaîne de format donnée en utilisant l'horodatage entier donné ou l'heure actuelle si aucun horodatage n'est indiqué. En d'autres termes, timestamp est facultatif et correspond par défaut à la valeur time ().

Et les paramètres sont -

format - Obligatoire. Spécifie le format de l'horodatage

timestamp - (Facultatif) Spécifie un horodatage. La valeur par défaut est la date et l'heure actuelles

Comment obtenir une date simple

Le paramètre de format requis de la fonction date() spécifie comment formater la date (or time).

Voici quelques caractères couramment utilisés pour les dates:

  1. d - Représente le jour du mois (01 au 31)
  2. m - Représente un mois (01 à 12)
  3. Y - Représente une année (en quatre chiffres)
  4. l (minuscule 'L') - Représente le jour de la semaine

D'autres caractères, tels que "/", ".", or "-", peuvent également être insérés entre les caractères pour ajouter un formatage supplémentaire.

L'exemple ci-dessous formate la date du jour de trois manières différentes:

<?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");
?>

Quelques liens utiles

9
Joomler

Vous pouvez utiliser ce code:

<?php
    $currentDateTime = date('Y-m-d H:i:s');
    echo $currentDateTime;
?>
9
RichestSoft

Si vous voulez une échelle de temps différente, veuillez utiliser:

$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");
9
Jaymin

Le format de la date dépend aussi:

echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
9
hector teran

Définissez votre fuseau horaire:

date_default_timezone_set('Asia/Calcutta');

Puis appelez les fonctions de date

$date = date('Y-m-d H:i:s');
9
kkarayat

J'ai trouvé que le moyen le plus simple d'obtenir l'heure actuelle dans PHP est quelque chose comme ceci.

//Prints out something like 10:00am Just be sure to set your timezone correctly.
date_default_timezone_set("America/Chicago");
$TIME = date('G:ia'); 
7
Bullyen

Un autre moyen simple consiste à prendre l'horodatage de la date et de l'heure actuelles. Utilisez la fonction mktime ():

$now = mktime(); // Return timestamp of the current time

Ensuite, vous pouvez convertir ceci en un autre format de date:

//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);

Plus de formats de date sont ici: http://php.net/manual/en/function.date.php

7
adespotos

Voici quelques caractères couramment utilisés pour les époques:

  1. h - Format d’une heure sur 12 heures avec zéros non significatifs (01 à 12)
  2. i - Minutes avec zéros au début (00 à 59)
  3. s - Secondes avec zéros non significatifs (00 à 59)
  4. a - Minuscules Ante Meridiem et Post Meridiem (am ou pm)

Obtenez votre fuseau horaire

<?php
    date_default_timezone_set("America/New_York");
    echo "The time is " . date("h:i:sa");
?>

Découvrez ceci (facultatif) _

<?php
    $d = mktime(11, 14, 54, 8, 12, 2014);
    echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

Pour date

<?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");
?>

Voici quelques caractères couramment utilisés pour les dates:

  1. d - Représente le jour du mois (01 au 31)
  2. m - Représente un mois (01 à 12)
  3. Y - Représente une année (en quatre chiffres)
  4. l (minuscule 'L') - Représente le jour de la semaine

Source-W3-Schools

5
Raheel Khan

Pour le nouveau PHP, le programmeur peut avoir du mal à comprendre pourquoi il existe de nombreuses méthodes pour obtenir la date et l'heure actuelles et la méthode à utiliser dans leur projet.

1. Méthode date (PHP 4, PHP 5, PHP 7)

C'est le moyen le plus courant et le plus simple d'obtenir la date et l'heure 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));

Vous pouvez en apprendre plus à ce sujet dans ici

2. DateTime class (PHP 5> = 5.2.0, PHP 7)

lorsque vous souhaitez utiliser PHP avec le POO, c'est le meilleur moyen d'obtenir la date et l'heure.

<?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";
?>

Vous pouvez en apprendre plus à ce sujet dans ici

3. Carbone Date heure paquet

si vous utilisez Compositeur , Laravel , Symfony ou tout autre type de cadre, c'est le meilleur moyen d'obtenir la date et l'heure. De plus, ce paquetage étend la classe DateTime dans php afin que vous utilisiez toute la méthode de la classe Datetime. Ces frameworks intégrés tels que laravel ne vous obligent donc pas à l'installer séparément.

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'

Vous pouvez en apprendre plus à ce sujet dans ici

J'espère que cela vous aidera et si vous connaissez un autre moyen d'obtenir la date et l'heure, n'hésitez pas à modifier la réponse.

5
Supun Praneeth

Si vous êtes bangladais et que vous voulez obtenir l'heure de Dhaka , utilisez ceci:

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');
5
A.A Noman
// 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));
5
Elyor

Si vous voulez obtenir la date comme12-3-2016, séparez chaque valeur de jour, mois et année, puis copiez-collez ce code:

$day = date("d");
$month = date("m");
$year = date("y");
print "date" . $day . "-" . $month . "-" . $year;
4
Pir Fahim Shah

PHP renvoie l'heure actuelle en secondes. Vous devez les formater dans le format de votre choix.

<?php
    // time() returns current time in seconds
    $in_seconds = time();

    // strftime - Format a local time/date according to locale settings
    echo strftime("%m/%d/%y", $in_seconds);
?>

Référence: http://php.net/manual/en/function.strftime.php

3
Gnanasekar S

Nous pouvons utiliser la fonction date et définir le fuseau horaire par défaut:

<?php
    date_default_timezone_set("Asia/Kolkata");
    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");
    echo "The time is " . date("h:i:sa");
?>
3
Siddharth Shukla

Normalement, cette fonction pour la date est utile pour tout le monde: date ("J/m/j");

Mais le temps est quelque chose de différent, car la fonction time dépend de la version de PHP ou de la date du système.

Donc, utilisez probablement ceci comme ceci pour obtenir notre propre fuseau horaire:

$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');

Cette fonction affiche l'heure sur 24 heures.

3
Meena Arumugam

Le meilleur moyen d'obtenir l'heure et la date actuelles est d'utiliser la fonction date en PHP:

$date = date('FORMAT'); // FORMAT E.g.: Y-m-d H:i:s

$current_date = date('Y-m-d H:i:s');

Avec l'horodatage Unix:

$now_date = date('FORMAT', time()); // FORMAT Eg : Y-m-d H:i:s

Pour définir le fuseau horaire du serveur:

date_default_timezone_set('Asia/Calcutta');

Une liste de fuseaux horaires différente est ici .

3
Arthi Rajgopal

Très simple

date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());
1
Kowsigan Atsayam
echo $today = date('y-m-d');

Cela retournera la date d'aujourd'hui.

0
Ajay Katariya

L'heure du serveur Linux et le fuseau horaire du décalage PHP time () comme suit:

<?php
    putenv("TZ=Asia/Kabul");
    $t = time();
    echo date('d/m/Y H:i:sa', $t);
?>
0
Ahmad Shakib