使用php处理日期/时间时我很困惑.
我想要做的是:当用户访问我的页面时,我会询问他的时区,然后在他的时区显示"星期几".
我不想使用浏览器的一天.我想在php中进行这个计算.
这就是我试图实现它的方式:
但我不知道如何继续......我将如何在这个时区获得"星期几".
Bot*_*res 145
$dw = date( "w", $timestamp);
Run Code Online (Sandbox Code Playgroud)
$ dw将是0(星期日)到6(星期六),你可以在这里看到:http: //www.php.net/manual/en/function.date.php
tra*_*nte 115
我的解决方案是:
$tempDate = '2012-07-10';
echo date('l', strtotime( $tempDate));
Run Code Online (Sandbox Code Playgroud)
输出是: Tuesday
$tempDate = '2012-07-10';
echo date('D', strtotime( $tempDate));
Run Code Online (Sandbox Code Playgroud)
输出是: Tue
小智 20
非常感谢你们的快速评论.
这就是我现在要用的东西.在这里发布功能,以便有人可以使用它.
public function getDayOfWeek($pTimezone)
{
$userDateTimeZone = new DateTimeZone($pTimezone);
$UserDateTime = new DateTime("now", $userDateTimeZone);
$offsetSeconds = $UserDateTime->getOffset();
//echo $offsetSeconds;
return gmdate("l", time() + $offsetSeconds);
}
Run Code Online (Sandbox Code Playgroud)
如果您发现任何更正,请报告.
cjo*_*son 18
我认为这是正确答案,只需更改Europe/Stockholm
为用户时区即可.
$dateTime = new \DateTime(
'now',
new \DateTimeZone('Europe/Stockholm')
);
$day = $dateTime->format('N');
Run Code Online (Sandbox Code Playgroud)
ISO-8601星期几的数字表示(在PHP 5.1.0中添加)1(星期一)到7(星期日)
http://php.net/manual/en/function.date.php
有关支持的时区列表,请参阅 http://php.net/manual/en/timezones.php
另一种快捷方式:
date_default_timezone_set($userTimezone);
echo date("l");
Run Code Online (Sandbox Code Playgroud)
如果你可以获得他们的时区偏移量,你可以将它添加到当前时间戳,然后使用gmdate函数来获取它们的本地时间.
// let's say they're in the timezone GMT+10
$theirOffset = 10; // $_GET['offset'] perhaps?
$offsetSeconds = $theirOffset * 3600;
echo gmdate("l", time() + $offsetSeconds);
Run Code Online (Sandbox Code Playgroud)
$myTimezone = date_default_timezone_get();
date_default_timezone_set($userTimezone);
$userDay = date('l', $userTimestamp);
date_default_timezone_set($myTimezone);
Run Code Online (Sandbox Code Playgroud)
这应该有效(没有测试它,所以 YMMV)。它的工作原理是存储脚本的当前时区,将其更改为用户指定的时区,在指定的时间戳处从函数获取星期几date()
,然后将脚本的时区设置回开始时的时区。
不过,您可能会遇到一些关于时区标识符的冒险。
归档时间: |
|
查看次数: |
274138 次 |
最近记录: |