我创建了一个漫画,并拥有一个包含指定日期的漫画页数据库。我希望获得最新约会的漫画,但不会为未来获得漫画。
换句话说,如果today
是12-12-2000,我有以下漫画:
我将能够查询并获得漫画1& 2。
到目前为止,我已使用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声明?我们只想说我想用山地时间作为我的时区。
答案 0 :(得分:4)
正如@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 :(得分:3)
对于特定时区选择,您可以在使用date_default_timezone_set或date()功能之前使用time()。
示例:强>
date_default_timezone_set('Asia/Dhaka');
// Then call the date functions
echo $date = date('Y-m-d H:i:s');
或强>
自PHP 5.2.0
以来,您可以使用 OOP 和DateTime()
进行操作(当然,如果您更喜欢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。
答案 2 :(得分:1)
对于America / New_York时区
$today = new DateTime("now", new DateTimeZone('America/New_York') );
echo $today->format('Y-m-d');
答案 3 :(得分: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);
希望这有帮助