PHP - 在特定时区获取当前时间

问题描述:

我创建了一个漫画,并拥有一个包含指定日期的漫画页面的数据库。我想用最新的日期获得漫画,但是不会为未来获得漫画。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作为我的时区。

正如@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); 

为美国/纽约时间

$today = new DateTime("now", new DateTimeZone('America/New_York')); 
echo $today->format('Y-m-d'); 

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

希望这有助于

对于具体的时区选择,你可以使用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