2016-12-16 89 views
2

我創建了一個漫畫,並擁有一個包含指定日期的漫畫頁面的數據庫。我想用最新的日期獲得漫畫,但是不會爲未來獲得漫畫。PHP - 在特定時區獲取當前時間

換句話說,如果today是2000年12月12日,和我有以下漫畫:

  1. 2000年12月1日
  2. 2000年12月12日
  3. 12-30- 2000

我就能到目前爲止查詢並獲得唯一的漫畫1 & 2.

,我有d一個與gettimeofday()函數一起使用,只是將它分配給一個變量並執行MySQL查詢。這是我現在正在做的最新(但不是未來)漫畫的簡化版本。

$gtod1 = gettimeofday(); 
$today = date("Y-m-d"); 
$directory = "comics"; 


$sql_lastcomic = $conn->prepare("SELECT * FROM comics WHERE story = ? AND `date` <= ? ORDER BY `date` DESC, id DESC LIMIT 1"); 
$sql_lastcomic->bind_param('ss', $directory, $today); 

這工作正常,除了我希望它總是看我的時區,而不是用戶時區。這樣,每個人都可以同時發佈更新。

我查看了gettimeofday()的文檔,但不知道如何修改它。或者我應該修改我的MySQL語句?我們只是說我想用Mountain Time作爲我的時區。

回答

1

正如@Karthik所說,你可以通過使用DateTimezone對象來獲取時區。

Here's a link給文檔。

例子:

$tz = 'America/New_York'; 
$tz_obj = new DateTimeZone($tz); 
$today = new DateTime("now", $tz_obj); 
$today_formatted = $today->format('Y-m-d'); 
$directory = "comics"; 

$query = " 
SELECT * 
FROM comics 
WHERE story = ? 
AND `date` <= ? 
ORDER BY `date` DESC, id DESC 
LIMIT 1" 

$prepped = $conn->prepare($query); 
$prepped->bind_param('ss', $directory, $today_formatted); 
1

爲美國/紐約時間

$today = new DateTime("now", new DateTimeZone('America/New_York')); 
echo $today->format('Y-m-d'); 
1
date_default_timezone_set('Asia/Kolkata'); 
//this will set your default timezone,for your use set default timezone as yours 
$time = strtotime(date('Y-m-d H:i')); 

$date = date("d/m/Y g:i A", $time); 

希望這有助於

2

對於具體的時區選擇,你可以使用date()time()函數之前使用date_default_timezone_set

例子:

date_default_timezone_set('Asia/Dhaka'); 
// Then call the date functions 
echo $date = date('Y-m-d H:i:s'); 

OR

由於PHP 5.2.0您可以使用OOPDateTime()以及做(當然如果你喜歡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 

和指定timezone

$now = new DateTime(null, new DateTimeZone('Asia/Dhaka')); 
$now->setTimezone(new DateTimeZone('Asia/Dhaka')); // Another way 
echo $now->getTimezone(); 

對於一個時區參考,請參閱List of Supported Timezones

一些有用的鏈接

+0

在這個答案的第一個例子是做到這一點的最簡單方法 – khuderm