ฉันจะรับวันที่และเวลาปัจจุบันใน PHP ได้อย่างไร


คำตอบ:


623

เวลาจะไปตามเวลาที่เซิร์ฟเวอร์ของคุณ วิธีแก้ปัญหาง่าย ๆ สำหรับสิ่งนี้คือการตั้งค่าเขตเวลาด้วยตนเองโดยใช้date_default_timezone_setก่อนที่จะเรียกใช้ฟังก์ชันdate()หรือtime()

ฉันอยู่ในเมลเบิร์นออสเตรเลียดังนั้นฉันมีสิ่งนี้:

date_default_timezone_set('Australia/Melbourne');

หรืออีกตัวอย่างคือ LA - US :

date_default_timezone_set('America/Los_Angeles');

นอกจากนี้คุณยังสามารถดูโซนเวลาที่เซิร์ฟเวอร์กำลังใช้งานอยู่ผ่าน

date_default_timezone_get();

ดังนั้นสิ่งที่ชอบ:

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

ดังนั้นคำตอบสั้น ๆ สำหรับคำถามของคุณคือ:

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

จากนั้นเวลาทั้งหมดจะเป็นเขตเวลาที่คุณเพิ่งตั้งค่า :)


101
การเรียกไปที่เวลา () ซ้ำซ้อนวันที่ () จะใช้เวลาปัจจุบันโดยอัตโนมัติ
php มากเกินไป

11
OP ไม่เคยถามเกี่ยวกับเขตเวลา คำตอบที่ง่ายและถูกต้องมากขึ้นจะแสดงเวลาของเซิร์ฟเวอร์
AyexeM

43
@Aexe exe ฉันชื่นชมข้อมูลเขตเวลาเพิ่มเติม มันช่วยฉันค้นหาครั้งที่สอง
Marquizzo

5
คุณสามารถรับโซนเวลาทั้งหมดได้จากที่นี่เขตเวลา
Yousef Altaf

13
@AyexeM คำตอบที่ง่ายและถูกต้องมากกว่านั้นไม่ได้เป็นการละเว้นข้อมูลที่สำคัญและเกี่ยวข้อง แต่ให้ตอบคำถามตามที่คุณแนะนำ แต่ให้ข้อมูลเพิ่มเติมเกี่ยวกับเขตเวลาข้างใต้ ไม่จำเป็นต้องละเว้นข้อมูลสำคัญที่อาจเกิดขึ้นเพียงเพราะมันไม่ได้ถูกถาม
เจมี่

524
// 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.

สำหรับการอ้างอิงโซนเวลาดูรายการของเขตได้รับการสนับสนุน


12
นี่คือคำตอบที่ตรงไปตรงมามากขึ้นกว่าคำตอบด้านบน ขอบคุณ!
dev_willis

1
ขอบคุณสำหรับลิงค์ของเขตเวลาที่สนับสนุนฉันจะ google มัน :)
htafoya

190

ตั้งแต่ PHP 5.2.0คุณสามารถใช้DateTime()คลาส:

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

และเพื่อระบุtimezone:

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

2
นี่เป็นคำตอบที่ดี แต่คุณลืมที่จะบอกว่าเราต้องใช้ \ Datetime ก่อนที่จะเรียกมัน :) ty
Amor.o

@ Amor.o ขอบคุณสำหรับหัวขึ้นฉันได้อัปเดตคำตอบในขณะนี้ - แม้ว่าจะช้าไปหน่อยและฉันก็จำไม่ได้ว่าได้รับการแจ้งเตือนสำหรับความคิดเห็นของคุณ เกี่ยวกับการใช้Datatimeเนมสเปซ ฉันจำไม่ได้ว่าเป็นกรณีในปี 2013 และฉันไม่ได้เขียนโค้ด PHP ใด ๆ เป็นเวลาหลายปี ดูเหมือนว่าคำแนะนำของคุณจะถูกต้องแล้วขอบคุณอีกครั้ง
มาห์ดี

คุณยินดีต้อนรับ :)
Amor.o

95

การอ้างอิง: นี่คือลิงค์

สิ่งนี้สามารถไว้วางใจได้มากกว่าการเพิ่มหรือลบจำนวนวินาทีในหนึ่งวันหรือหนึ่งเดือนไปยังการประทับเวลาเนื่องจากการปรับเวลาตามฤดูกาล

รหัส 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)

แน่นอนที่สุด ~
Yash Kumar Verma

67

PHP's time ()ส่งคืนการประทับเวลา Unix ปัจจุบัน ด้วยสิ่งนี้คุณสามารถใช้ฟังก์ชันdate ()เพื่อจัดรูปแบบตามความต้องการของคุณ

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

ดังที่เปาโลกล่าวถึงในข้อคิดเห็นข้อคิดเห็นอาร์กิวเมนต์ที่สองซ้ำซ้อน ตัวอย่างต่อไปนี้เทียบเท่ากับตัวอย่างด้านบน:

$date = date('Format String');

17
อาร์กิวเมนต์ที่ 2 ของฟังก์ชัน date จะถือว่าเป็น time () หากปล่อยว่างไว้
Paolo Bergantino

66

คุณสามารถใช้$_SERVER['REQUEST_TIME']ตัวแปร (มีให้ตั้งแต่ PHP 5.1.0) หรือtime()ฟังก์ชั่นเพื่อรับ Unix Timestamp ปัจจุบัน


1
เป็นที่น่าสังเกตว่าการประทับเวลาที่ส่งคืนโดยtime()ฟังก์ชันนั้นไม่ขึ้นอยู่กับเขตเวลา (ดังนั้นการโทรdate_default_timezone_set("your-particular-timezone");มาก่อนจะไม่มีผลกระทบ)
ห้าม geoengineering

@ ban-geoengineering - ไม่แน่ใจว่าคุณหมายถึงอะไรโดย "ไม่ขึ้นกับเขตเวลา" มันขึ้นอยู่กับเขตเวลาที่เซิร์ฟเวอร์ตั้งค่าหรือไม่ คุณสามารถมีเซิร์ฟเวอร์บนชายฝั่งตะวันออกที่ตั้งค่าเป็นโซนเวลาบนชายฝั่งตะวันตกหรือในทางกลับกัน
Neal Davis

56

คุณสามารถใช้ทั้ง$_SERVER['REQUEST_TIME']ตัวแปรหรือtime()ฟังก์ชั่น ทั้งสองนี้ส่งคืนการประทับเวลา Unix

เวลาส่วนใหญ่ของทั้งสองโซลูชั่นจะให้ผลผลิตเดียวกันแน่นอนUnix Timestamp ความแตกต่างระหว่างสิ่งเหล่านี้คือการ$_SERVER['REQUEST_TIME']ส่งคืนการประทับเวลาของคำขอเซิร์ฟเวอร์ล่าสุดและtime()ส่งคืนเวลาปัจจุบัน สิ่งนี้อาจสร้างความแตกต่างเล็กน้อยในความแม่นยำขึ้นอยู่กับแอปพลิเคชันของคุณ

ตามรหัสตัวอย่างของคุณข้างต้นคุณจะต้องการการจัดรูปแบบข้อมูลนี้เมื่อคุณได้รับUnix Timestamp เวลา Unix ที่ไม่ฟอร์แมตดูเหมือนว่า:1232659628

ดังนั้นเพื่อให้ได้สิ่งที่ใช้งานได้คุณสามารถใช้date()ฟังก์ชันเพื่อจัดรูปแบบ

การอ้างอิงที่ดีสำหรับวิธีการที่จะใช้date()ฟังก์ชั่นตั้งอยู่ในคู่มือการใช้งาน PHP

เป็นตัวอย่างรหัสต่อไปนี้จะคืนค่าวันที่ที่มีลักษณะดังนี้01/22/2009 04:35:00 pm:

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

เว็บเซิร์ฟเวอร์ต่างกันจัดการ$_SERVER['REQUEST_TIME'] อย่างไร
Pacerier

คำตอบที่ดีที่สุดมือลง คุณยังสามารถเพิ่มวิธีรับจาก UNIX Timestamp ไปยังวันที่บุคคลทั่วไปซึ่งชื่นชมอย่างมาก
Kolob Canyon

45

ฟังก์ชันวันที่ของ PHP สามารถทำงานนี้ได้

วันที่ ()

รายละเอียด:

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

ส่งคืนสตริงที่จัดรูปแบบตามสตริงรูปแบบที่กำหนดโดยใช้การประทับเวลาจำนวนเต็มที่กำหนดหรือเวลาปัจจุบันหากไม่มีการระบุเวลา

ตัวอย่าง:

$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)



25

สำหรับโปรแกรมเมอร์ PHP คนใหม่อาจทำให้เกิดความสับสนว่าทำไมมีวิธีการมากมายในการรับวันที่และเวลาปัจจุบันและสิ่งใดที่จะใช้ในโครงการของพวกเขา

1. datemethod (PHP 4, PHP 5, PHP 7)

นี่เป็นวิธีที่ใช้กันทั่วไปและง่ายที่สุดในการรับวันที่และเวลาเป็น 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));

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับมันได้ที่นี่

2. DateTimeclass (PHP 5> = 5.2.0, PHP 7)

เมื่อคุณต้องการใช้ PHP กับ OOP นี่เป็นวิธีที่ดีที่สุดในการรับวันที่และเวลา

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

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับมันได้ที่นี่

3. แพ็คเกจวันเวลาของคาร์บอน

หากคุณกำลังใช้Composer , Laravel , Symfonyหรือเฟรมเวิร์กใด ๆ นี่เป็นวิธีที่ดีที่สุดในการรับวันที่และเวลา ด้วยแพ็คเกจนี้ขยายคลาส DateTime ใน php ดังนั้นคุณจึงใช้เมธอดทั้งหมดในคลาส Datetime เฟรมเวิร์กที่สร้างขึ้นนี้เช่น laravel ดังนั้นคุณไม่จำเป็นต้องติดตั้งแยกต่างหาก

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'

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับมันได้ที่นี่

หวังว่านี่จะช่วยได้และถ้าคุณรู้วิธีอื่นในการรับวันที่และเวลาสามารถแก้ไขคำตอบได้


ฉันชอบคำตอบอื่น ๆ ที่แสดงวิธีการจัดรูปแบบสตริงแม้ด้วยข้อความที่กำหนดเองหรือสมมติว่ารูปแบบที่ดีที่สุดสำหรับ MySQL ฯลฯ แต่ฉันจะยอมรับอย่างนี้เพื่อแสดงทั้งสามประเภทและการใช้งาน: ขั้นตอนเชิงวัตถุและกรอบ OOP .
s3c

1
@ s3c ฉันสามารถตอบบางอย่างเช่นนั้นได้ แต่คำถามคือ "ฉันจะรับวันและเวลาปัจจุบันใน PHP ได้อย่างไร" จุดสนใจหลักของเราควรอยู่ที่คำถามนั้น :)
Supun Praneeth

21

ใช้:

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

มันได้ผล.


สิ่งที่ฉันหมายถึงคือเวลากลับมา EST เมื่อฉัน PST ... แต่ทำไม เป็นเวลาของเซิร์ฟเวอร์และเซิร์ฟเวอร์เป็น EST หรือไม่ ฉันจะได้เวลาของผู้ใช้หรือไม่ เซิร์ฟเวอร์ของพวกเขาอาจเป็นโซนเวลาอื่นใช่ไหม

ฟังก์ชั่นวันที่เป็นเวลาของเซิร์ฟเวอร์ของคุณตรวจสอบหรือตั้งค่าชั่วคราว / w PHP ก่อนที่คุณจะเรียกใช้วันที่
TravisO

ขอบคุณบริการของฉันต้องไม่ทันสมัยกับ php เพราะ O ทำงานกับ GMT แต่ไม่ใช่ P หรือเขตเวลา "e" ... ขอบคุณ !!

$ date = date ('m / d / Y h: i: s a', เวลา ()); ได้รับวันที่เซิร์ฟเวอร์ แต่ก็ยังไม่ได้รับฉันวันที่ผู้ใช้ นี่แสดงให้ฉันที่ EST เมื่อฉันอยู่ที่ PST ฉันต้องการได้รับวันที่ผู้ใช้ส่งแบบฟอร์มและชอบฉันเซิร์ฟเวอร์ของพวกเขาอาจอยู่ในเขตเวลาที่แตกต่างกัน

ที่จริงตอนนี้ฉันคิดว่าเวลาไม่สำคัญเท่าวันที่ ขอบคุณทุกคน!!

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

รหัสนี้จะได้รับวันที่และเวลาของเซิร์ฟเวอร์ที่รหัสทำงาน


1
Downvoted สำหรับคำตอบที่ทำให้เข้าใจผิด ไม่มันจะไม่ได้รับเวลาของเครื่องท้องถิ่นของคุณเว้นแต่คุณจะใช้เซิร์ฟเวอร์ในประเทศ มันจะได้รับวันที่และเวลาของเซิร์ฟเวอร์
MattWithoos

@MattWithoos - "รหัสนี้จะได้รับวันที่และเวลาของ" เซิร์ฟเวอร์ "เขาพูดอะไรเกี่ยวกับ" เครื่องท้องถิ่น "ที่คุณพูดว่าคุณไม่ต้องใช้เซิร์ฟเวอร์ของคุณ" ในประเทศ "อย่างใดอย่างหนึ่ง - คุณสามารถมีเซิร์ฟเวอร์ . ที่ใดก็ได้ในโลกชุดเพื่อสิ่งที่โซนเวลาที่คุณต้องการลงคะแนนของคุณเป็นเรื่องที่ผิดที่ตายแล้วและไม่มีเหตุผล
โอนีลเดวิส

1
@NealDavis คุณคิดว่าจะดูการแก้ไขหรือไม่ ฉันโพสต์ความคิดเห็นนั้นเสนอแนะการแก้ไขในข้อมูลที่ไม่ถูกต้องและในระหว่างนี้รอการอนุมัติ ตอนนี้ได้รับการอนุมัติและแสดงข้อมูลที่ถูกต้อง
MattWithoos

1
@NealDavis นอกจากนี้หากคุณใส่ใจที่จะอ่านโพสต์ต้นฉบับมันก็บอกว่า "รหัสนี้จะได้รับวันที่และเวลาของเครื่องท้องถิ่นของคุณ (PC)" นั่นทำให้เข้าใจผิดอย่างเต็มที่
MattWithoos


14

อ้างอิงจากบทความวิธีการรับวันที่และเวลาปัจจุบัน (ตอนนี้) ด้วย PHPมีสองวิธีทั่วไปในการรับวันที่ปัจจุบัน ในการรับ datetime ปัจจุบัน (ตอนนี้) ด้วย PHP คุณสามารถใช้dateคลาสกับ PHP เวอร์ชันใดก็ได้หรือดีกว่าdatetimeคลาสที่มี PHP> = 5.2

มีการแสดงรูปแบบวันที่หลากหลายที่นี่

ตัวอย่างการใช้วันที่

Y-m-d H:i:sสำนวนนี้จะกลับมาตอนนี้ในรูปแบบ

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

ตัวอย่างการใช้คลาส datetime

Y-m-d H:i:sสำนวนนี้จะกลับมาตอนนี้ในรูปแบบ

<?php
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>

13
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

พิมพ์แบบนี้

วันอาทิตย์ที่ 9 ธันวาคม 2555


12
<?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

ตั้งค่าเขตเวลาของคุณ:

date_default_timezone_set('Asia/Calcutta');

จากนั้นเรียกใช้ฟังก์ชันวันที่

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

11
date(format, timestamp)

dateส่งกลับฟังก์ชันสตริงรูปแบบตามรูปแบบของสตริงที่กำหนดโดยใช้การประทับเวลาที่กำหนดหรือจำนวนเต็มเวลาปัจจุบันหากไม่มีการประทับเวลาที่จะได้รับ กล่าวอีกนัยหนึ่งtimestampเป็นตัวเลือกและเป็นค่าเริ่มต้นตามค่าของเวลา ()

และพารามิเตอร์คือ -

รูปแบบ - จำเป็น ระบุรูปแบบของการประทับเวลา

timestamp - (เป็นตัวเลือก) ระบุการประทับเวลา ค่าเริ่มต้นคือวันที่และเวลาปัจจุบัน

วิธีรับวันที่ง่ายๆ

พารามิเตอร์รูปแบบจำเป็นของการระบุการทำงานวิธีการจัดรูปแบบdate()date (or time)

ต่อไปนี้เป็นอักขระบางตัวที่ใช้กันโดยทั่วไปสำหรับวันที่:

  1. d - แสดงวันของเดือน (01 ถึง 31)
  2. m - แสดงถึงเดือน (01 ถึง 12)
  3. Y - แสดงถึงปี (เป็นตัวเลขสี่หลัก)
  4. l (ตัวพิมพ์เล็ก 'L') - แสดงถึงวันในสัปดาห์

อักขระอื่นเช่น"/", ".", or "-"สามารถแทรกระหว่างอักขระเพื่อเพิ่มการจัดรูปแบบเพิ่มเติม

ตัวอย่างด้านล่างจัดรูปแบบวันที่วันนี้ด้วยสามวิธีที่แตกต่างกัน:

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

ลิงก์ที่มีประโยชน์บางอย่าง

  • gmdate () - จัดรูปแบบวันที่ / เวลา GMT / UTC
  • idate () - จัดรูปแบบเวลาท้องถิ่น / วันที่เป็นจำนวนเต็ม
  • getdate () - รับข้อมูลวันที่ / เวลา
  • getlastmod () - รับเวลาของการแก้ไขหน้าสุดท้าย
  • mktime () - รับการประทับเวลา Unix สำหรับวันที่
  • strftime () - จัดรูปแบบเวลาท้องถิ่น / วันที่ตามการตั้งค่าสถานที่
  • เวลา() - ส่งคืนการประทับเวลา Unix ปัจจุบัน
  • strtotime () - แยกวิเคราะห์เกี่ยวกับคำอธิบายวันที่และเวลาที่เป็นข้อความภาษาอังกฤษลงในการประทับเวลา Unix
  • ค่าคงที่ DateTime ที่กำหนดไว้ล่วงหน้า

10

หากคุณต้องการช่วงเวลาอื่นโปรดใช้:

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

"timescale" คุณหมายถึงอะไร
Peter Mortensen

"เขตเวลา" น่าจะเป็น
Saneem

2
ฉันเชื่อว่า @Jaymin อาจหมายถึงถ้าคุณต้องการที่จะปรับเวลาล่วงหน้าวันหลังเดือนอื่น ๆ
เพียงแค่ธรรมดาสูง


10

รูปแบบวันที่ขึ้นอยู่กับ:

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

นี่เป็นสิ่งที่เข้าใจยาก คุณสามารถทำอย่างละเอียด?
Peter Mortensen


9

ฉันพบว่าวิธีที่ง่ายที่สุดในการรับเวลาปัจจุบันใน PHP คือสิ่งนี้

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

8

อีกวิธีง่าย ๆ คือการประทับเวลาของวันที่และเวลาปัจจุบัน ใช้ฟังก์ชั่นmktime () :

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

จากนั้นคุณสามารถแปลงเป็นรูปแบบวันที่อื่น:

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

รูปแบบวันที่เพิ่มเติมได้ที่นี่: http://php.net/manual/en/function.date.php



6
// 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));

6

หากคุณเป็นบังคลาเทศและถ้าคุณต้องการใช้เวลาธากาให้ใช้สิ่งนี้:

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');

6

โดยปกติฟังก์ชั่นนี้จะมีประโยชน์สำหรับทุกคน: วันที่ ("Y / m / d");

แต่เวลานั้นแตกต่างกันเพราะฟังก์ชั่นเวลาขึ้นอยู่กับรุ่น PHP หรือวันที่ของระบบ

ดังนั้นอาจใช้แบบนี้เพื่อให้ได้เขตเวลาของเรา:

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

ฟังก์ชั่นนี้แสดงเวลา 24 ชั่วโมง


มันตั้งวันที่ 1970 สำหรับฉัน!
iKamy

5

นี่คือตัวละครบางตัวที่ใช้บ่อยครั้ง:

  1. h - รูปแบบ 12 ชั่วโมงต่อชั่วโมงโดยมีศูนย์นำหน้า (01 ถึง 12)
  2. i - นาทีที่มีศูนย์นำหน้า (00 ถึง 59)
  3. s - วินาทีที่มีศูนย์นำหน้า (00 ถึง 59)
  4. a - ตัวพิมพ์เล็ก Ante meridiem และ Post meridiem (am หรือ pm)

รับเขตเวลาของคุณ

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

ลองดู(ไม่จำเป็น)

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

สำหรับวันที่

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

ต่อไปนี้เป็นอักขระบางตัวที่ใช้กันโดยทั่วไปสำหรับวันที่:

  1. d - แสดงวันของเดือน (01 ถึง 31)
  2. m - แสดงถึงเดือน (01 ถึง 12)
  3. Y - แสดงถึงปี (เป็นตัวเลขสี่หลัก)
  4. l (ตัวพิมพ์เล็ก 'L') - แสดงถึงวันในสัปดาห์

แหล่งที่มาของ-W3-โรงเรียน


1
วัตถุประสงค์ของการต่อท้ายคืออะไร.ในdate("Y/m/d") . ;?
Peter Mortensen

เพื่อเชื่อมสตริงหรือตัวแปรอื่นเข้าด้วยกันฉันเดา ขอบคุณสำหรับการแก้ไขของคุณ :-)
Raheel Khan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.