Yanıtlar:
Zaman, sunucu zamanınıza göre değişir. Bunun için kolay bir çözüm date_default_timezone_set
, date()
veya time()
fonksiyonlar çağrılmadan önce saat dilimini manuel olarak ayarlamaktır .
Avustralya , Melbourne, bu yüzden böyle bir şey var:
date_default_timezone_set('Australia/Melbourne');
Veya başka bir örnek LA - US :
date_default_timezone_set('America/Los_Angeles');
Sunucunun şu anda hangi saat diliminde olduğunu da görebilirsiniz:
date_default_timezone_get();
Yani şöyle bir şey:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
Yani sorunuzun kısa cevabı:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
O zaman her zaman ayarladığınız saat dilimi olur :)
// 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.
Zaman dilimi referansı için bkz . Desteklenen Zaman Dilimlerinin Listesi .
PHP'den beri sınıfı 5.2.0
kullanabilirsiniz 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
Ve belirtmek için timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Datatime
; 2013 yılında durumun böyle olup olmadığını hatırlayamıyorum ve yıllardır herhangi bir PHP kodu yazmadım. Ne olursa olsun, öneriniz doğru görünüyor, bu yüzden tekrar teşekkürler.
Referans: İşte bir bağlantı
Bu, gün ışığından yararlanma saati nedeniyle bir gün veya bir aydaki saniye sayısını bir zaman damgasına eklemek veya çıkarmaktan daha güvenilir olabilir.
PHP kodu
// 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'nin time () değeri geçerli bir Unix zaman damgası döndürür. Bununla, date () işlevini ihtiyaçlarınıza göre biçimlendirmek için kullanabilirsiniz.
$date = date('Format String', time());
Paolo'nun yorumlarda belirttiği gibi, ikinci argüman gereksizdir. Aşağıdaki snippet, yukarıdaki kod parçasına eşdeğerdir:
$date = date('Format String');
Ya kullanabilirsiniz $_SERVER['REQUEST_TIME']
değişkeni (PHP 5.1.0 ve sonrasında mevcuttur) veya time()
işlev Geçerli Unix zaman damgasını alır.
time()
İşlevin döndürdüğü zaman damgasının saat diliminden bağımsız olduğunu belirtmek gerekir . (Yani daha date_default_timezone_set("your-particular-timezone");
önce çağırmanın bir etkisi olmayacak.)
Hem $_SERVER['REQUEST_TIME']
değişkeni hem detime()
işlevi kullanabilirsiniz. Her ikisi de bir Unix zaman damgası döndürür.
Çoğu zaman bu iki çözüm aynı Unix Zaman Damgasını verecektir . Bunlar arasındaki fark şu ki$_SERVER['REQUEST_TIME']
, en son sunucu isteğinin zaman damgasını döndürmesi vetime()
döndürmesi ve geçerli saati döndürmesidir. Bu, uygulamanıza bağlı olarak doğrulukta küçük farklılıklar oluşturabilir, ancak çoğu durumda bu çözümlerin her ikisi de yeterlidir.
Yukarıdaki örnek kodunuza dayanarak, Unix Zaman Damgasını aldıktan sonra bu bilgileri biçimlendirmek isteyeceksiniz . Biçimlendirilmemiş Unix süresi şuna benzer:1232659628
Böylece işe yarayacak bir şey elde etmek için date()
işlevi biçimlendirmek için kullanabilirsiniz.
date()
Fonksiyonu kullanma yolları için iyi bir referans PHP El Kitabında bulunmaktadır. .
Örnek olarak, aşağıdaki kod şuna benzer bir tarih döndürür 01/22/2009 04:35:00 pm
:
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
?
PHP'nin tarih fonksiyonu bu işi yapabilir.
Açıklama:
string date(string $format [, int $timestamp = time()])
Belirli bir tamsayı zaman damgasını kullanarak belirli bir biçim dizesine göre biçimlendirilmiş bir dize veya hiçbir zaman damgası verilmemişse geçerli saati döndürür.
Örnekler:
$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');
Güncelleme
//Also get am/pm in datetime:
echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am
Tarih formatı için PHP date () İşlevi yararlıdır.
çok basit
echo $ date = date ('Ymd H: i: s');
Yeni PHP programcısı için neden geçerli tarih ve saati almak için çok fazla yöntem olduğunu ve hangisinin projesinde kullanacağını karıştırabilir.
1. date
yöntem (PHP 4, PHP 5, PHP 7)
Bu php tarih ve saat almak için çok yaygın ve çok kolay yoludur.
// 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));
Burada daha fazla bilgi edinebilirsiniz
2. DateTime
sınıf (PHP 5> = 5.2.0, PHP 7)
PHP'yi OOP ile kullanmak istediğinizde, bu tarih ve saati almanın en iyi yoludur.
<?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";
?>
Burada daha fazla bilgi edinebilirsiniz
3. Karbon Tarih saat paketi
Eğer kullanıyorsanız Besteci , laravel , Symfony'nin veya herhangi tür bir çerçeve bu tarih ve saati almak için en iyi yoldur. Ayrıca bu paket phet içinde DateTime sınıfını genişletir, böylece Datetime sınıfındaki tüm yöntemi kullanırsınız. Bu yerleşik laravel gibi çerçeveler sayesinde ayrı olarak kurmanıza gerek kalmaz.
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'
Burada daha fazla bilgi edinebilirsiniz
Umarım bu yardımcı olur ve tarih ve saati almanın başka bir yolunu biliyorsanız cevabı düzenlemekten çekinmeyin.
kullanın:
$date = date('m/d/Y h:i:s a', time());
İşe yarıyor.
echo date("d-m-Y H:i:sa");
Bu kod, kodun çalıştığı sunucunun tarih ve saatini alır.
Bu biçimi de kullanabilirsiniz:
$date = date("d-m-Y");
Veya
$date = date("Y-m-d H:i:s");
PHP ile Geçerli Tarih (ŞİMDİ) Nasıl Alınır makalesine göre , geçerli tarihi almanın iki yaygın yolu vardır. PHP ile geçerli datetime (şimdi) almak için, date
sınıfı herhangi bir PHP sürümü ile veya datetime
PHP> = 5.2 ile daha iyi bir sınıf kullanabilirsiniz.
Çeşitli tarih biçimi ifadeleri burada mevcuttur.
Bu ifade ŞİMDİ biçiminde dönecektir Y-m-d H:i:s
.
<?php
echo date('Y-m-d H:i:s');
?>
Bu ifade ŞİMDİ biçiminde dönecektir 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)
date
İşlevini verir bir dize verilen tamsayı damgası veya hiç zaman damgası verilirse geçerli zamanı kullanarak Verilen dizi biçimine göre biçimlendirilmiş. Başka bir deyişle, timestamp
isteğe bağlıdır ve varsayılan değer olarak time () değerini kullanır.
Ve parametreler -
biçim - Gerekli. Zaman damgasının biçimini belirtir
zaman damgası - (İsteğe bağlı) Zaman damgası belirtir. Varsayılan, geçerli tarih ve saattir
date()
İşlevin gerekli format parametresi. Dosyasının nasıl formatlanacağını belirtir date (or time)
.
Tarihler için yaygın olarak kullanılan bazı karakterler şunlardır:
"/", ".", or "-"
Ek biçimlendirme eklemek için karakterler arasına diğer karakterler de eklenebilir.
Aşağıdaki örnek bugünün tarihini üç farklı şekilde biçimlendirmektedir:
<?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");
?>
Farklı bir zaman ölçeği istiyorsanız, lütfen şunu kullanın:
$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");
Tarih biçimi de aşağıdakilere bağlıdır:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
Bu kodu kullanabilirsiniz:
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
Başka bir basit yol, geçerli tarih ve saatin zaman damgasını almaktır. Kullan mktime () fonksiyonu:
$now = mktime(); // Return timestamp of the current time
Ardından bunu başka bir tarih biçimine dönüştürebilirsiniz:
//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);
Daha fazla tarih biçimi burada: http://php.net/manual/en/function.date.php
Çok basit
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));
Normalde, tarih için bu işlev herkes için yararlıdır: tarih ("E / a / g");
Ancak zaman farklı bir şeydir, çünkü zaman fonksiyonu PHP sürümüne veya sistem tarihine bağlıdır.
Bu yüzden muhtemelen kendi saat dilimimizi almak için bu şekilde kullanın:
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');
Bu işlev 24 saatlik süreyi gösterir.
Zaman zaman yaygın olarak kullanılan bazı karakterler şunlardır:
a - Küçük harf Ante meridiem ve Post meridiem (am veya pm)
Saat diliminizi alın
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
Bunu kontrol et (isteğe bağlı)
<?php
$d = mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
Tarih için
<?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");
?>
Tarihler için yaygın olarak kullanılan bazı karakterler şunlardır:
.
içinde date("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());