คำตอบ:
เวลาจะไปตามเวลาที่เซิร์ฟเวอร์ของคุณ วิธีแก้ปัญหาง่าย ๆ สำหรับสิ่งนี้คือการตั้งค่าเขตเวลาด้วยตนเองโดยใช้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());
จากนั้นเวลาทั้งหมดจะเป็นเขตเวลาที่คุณเพิ่งตั้งค่า :)
// 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.
ตั้งแต่ 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();
Datatime
เนมสเปซ ฉันจำไม่ได้ว่าเป็นกรณีในปี 2013 และฉันไม่ได้เขียนโค้ด PHP ใด ๆ เป็นเวลาหลายปี ดูเหมือนว่าคำแนะนำของคุณจะถูกต้องแล้วขอบคุณอีกครั้ง
การอ้างอิง: นี่คือลิงค์
สิ่งนี้สามารถไว้วางใจได้มากกว่าการเพิ่มหรือลบจำนวนวินาทีในหนึ่งวันหรือหนึ่งเดือนไปยังการประทับเวลาเนื่องจากการปรับเวลาตามฤดูกาล
รหัส 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)
PHP's time ()ส่งคืนการประทับเวลา Unix ปัจจุบัน ด้วยสิ่งนี้คุณสามารถใช้ฟังก์ชันdate ()เพื่อจัดรูปแบบตามความต้องการของคุณ
$date = date('Format String', time());
ดังที่เปาโลกล่าวถึงในข้อคิดเห็นข้อคิดเห็นอาร์กิวเมนต์ที่สองซ้ำซ้อน ตัวอย่างต่อไปนี้เทียบเท่ากับตัวอย่างด้านบน:
$date = date('Format String');
คุณสามารถใช้$_SERVER['REQUEST_TIME']
ตัวแปร (มีให้ตั้งแต่ PHP 5.1.0) หรือtime()
ฟังก์ชั่นเพื่อรับ Unix Timestamp ปัจจุบัน
time()
ฟังก์ชันนั้นไม่ขึ้นอยู่กับเขตเวลา (ดังนั้นการโทรdate_default_timezone_set("your-particular-timezone");
มาก่อนจะไม่มีผลกระทบ)
คุณสามารถใช้ทั้ง$_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']
อย่างไร
ฟังก์ชันวันที่ของ 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)
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('d-m-Y H:i:s');
ปรับปรุง
//Also get am/pm in datetime:
echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am
สำหรับรูปแบบวันที่ฟังก์ชั่นวันที่ PHP ()มีประโยชน์
มันง่ายมาก
echo $ date = date ('Ymd H: i: s');
สำหรับโปรแกรมเมอร์ PHP คนใหม่อาจทำให้เกิดความสับสนว่าทำไมมีวิธีการมากมายในการรับวันที่และเวลาปัจจุบันและสิ่งใดที่จะใช้ในโครงการของพวกเขา
1. date
method (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. DateTime
class (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'
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับมันได้ที่นี่
หวังว่านี่จะช่วยได้และถ้าคุณรู้วิธีอื่นในการรับวันที่และเวลาสามารถแก้ไขคำตอบได้
ใช้:
$date = date('m/d/Y h:i:s a', time());
มันได้ผล.
echo date("d-m-Y H:i:sa");
รหัสนี้จะได้รับวันที่และเวลาของเซิร์ฟเวอร์ที่รหัสทำงาน
คุณสามารถใช้รูปแบบนี้ได้เช่นกัน:
$date = date("d-m-Y");
หรือ
$date = date("Y-m-d H:i:s");
อ้างอิงจากบทความวิธีการรับวันที่และเวลาปัจจุบัน (ตอนนี้) ด้วย PHPมีสองวิธีทั่วไปในการรับวันที่ปัจจุบัน ในการรับ datetime ปัจจุบัน (ตอนนี้) ด้วย PHP คุณสามารถใช้date
คลาสกับ PHP เวอร์ชันใดก็ได้หรือดีกว่าdatetime
คลาสที่มี PHP> = 5.2
มีการแสดงรูปแบบวันที่หลากหลายที่นี่
Y-m-d H:i:s
สำนวนนี้จะกลับมาตอนนี้ในรูปแบบ
<?php
echo date('Y-m-d H:i:s');
?>
Y-m-d H:i:s
สำนวนนี้จะกลับมาตอนนี้ในรูปแบบ
<?php
$dt = new DateTime();
echo $dt->format('Y-m-d H:i:s');
?>
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>
พิมพ์แบบนี้
วันอาทิตย์ที่ 9 ธันวาคม 2555
<?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_default_timezone_set('Asia/Calcutta');
จากนั้นเรียกใช้ฟังก์ชันวันที่
$date = date('Y-m-d H:i:s');
date(format, timestamp)
date
ส่งกลับฟังก์ชันสตริงรูปแบบตามรูปแบบของสตริงที่กำหนดโดยใช้การประทับเวลาที่กำหนดหรือจำนวนเต็มเวลาปัจจุบันหากไม่มีการประทับเวลาที่จะได้รับ กล่าวอีกนัยหนึ่งtimestamp
เป็นตัวเลือกและเป็นค่าเริ่มต้นตามค่าของเวลา ()
และพารามิเตอร์คือ -
รูปแบบ - จำเป็น ระบุรูปแบบของการประทับเวลา
timestamp - (เป็นตัวเลือก) ระบุการประทับเวลา ค่าเริ่มต้นคือวันที่และเวลาปัจจุบัน
พารามิเตอร์รูปแบบจำเป็นของการระบุการทำงานวิธีการจัดรูปแบบdate()
date (or time)
ต่อไปนี้เป็นอักขระบางตัวที่ใช้กันโดยทั่วไปสำหรับวันที่:
อักขระอื่นเช่น"/", ".", 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");
?>
หากคุณต้องการช่วงเวลาอื่นโปรดใช้:
$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");
date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");
รูปแบบวันที่ขึ้นอยู่กับ:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
คุณสามารถใช้รหัสนี้:
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
ฉันพบว่าวิธีที่ง่ายที่สุดในการรับเวลาปัจจุบันใน 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');
อีกวิธีง่าย ๆ คือการประทับเวลาของวันที่และเวลาปัจจุบัน ใช้ฟังก์ชั่น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
ง่ายมาก
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));
หากคุณเป็นบังคลาเทศและถ้าคุณต้องการใช้เวลาธากาให้ใช้สิ่งนี้:
$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');
โดยปกติฟังก์ชั่นนี้จะมีประโยชน์สำหรับทุกคน: วันที่ ("Y / m / d");
แต่เวลานั้นแตกต่างกันเพราะฟังก์ชั่นเวลาขึ้นอยู่กับรุ่น PHP หรือวันที่ของระบบ
ดังนั้นอาจใช้แบบนี้เพื่อให้ได้เขตเวลาของเรา:
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');
ฟังก์ชั่นนี้แสดงเวลา 24 ชั่วโมง
นี่คือตัวละครบางตัวที่ใช้บ่อยครั้ง:
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");
?>
ต่อไปนี้เป็นอักขระบางตัวที่ใช้กันโดยทั่วไปสำหรับวันที่:
.
ในdate("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());