0

请任何人都可以帮助!

我希望日期采用以下格式

Wed Oct 09 2013 14:48:26 GMT+0530 (India Standard Time) //this one is what jquery Date(); returns

但我得到它

Wed Oct 09 2013 15:42:38 Asia/Kolkata+0530 (IST)

我在用

date('D M d Y H:i:s eO (T)');

问题是 jQuery 用GMT+0530返回我的日期,而 PHP 用Asia/Kolkata+0530返回它

编辑

我在我的代码中放置了一个计时器,它显示从那时起登录,所以登录时我使用上面写的 PHP 日期函数在会话中设置当前日期时间,但问题是 jQuery 的新 Date() 函数以格式返回日期除了 PHP 中的日期。请在下面找到代码

PHP代码:

date_default_timezone_set("GMT+0530");
$_SESSION['loggedin'] = date('D M d Y H:i:s eO (T)'); // returns Wed Oct 09 2013 15:42:38 Asia/Kolkata+0530 (IST)

JS代码://JS date function returns time as Wed Oct 09 2013 14:48:26 GMT+0530 (India Standard Time)

$(document).ready(function(){
        if($('#logged').val()!=''){
            var pageVisisted = new Date($_SESSION['loggedin']); 

            setInterval(function() {
                var timeOnSite = new Date() - pageVisisted;

                var secondsTotal = timeOnSite / 1000;
                var hours = Math.floor(secondsTotal / 3600);
                var minutes = Math.floor(secondsTotal / 60) % 3600;
                var seconds = Math.floor(secondsTotal)  % 60;
                var showtime = "Logged in Since ";
                if(hours>0){
                    showtime = showtime + hours + " hours and ";
                }
                showtime = showtime + minutes + " mins";
                document.getElementById('counter').innerHTML = showtime;
            }, 1000);
        }
    });
4

3 回答 3

1

如果要强制GMT+0000,请对其进行硬编码:

echo date('D M d Y H:i:s \G\M\TO (e)');

至于ISTvs India Standard Time,我认为没有简单的方法。

$tz_map = [
  'IST' => 'India Standard Time'
];
echo strtr(date('D M d Y H:i:s \G\M\TO (e)'), $tz_map);

如果您想进行搜索/替换地图,使用T代替可能会更容易。E

于 2013-10-24T11:00:29.387 回答
1

PHP中有两种不同的方法可以解决您的问题。只需使用与日期和时间相关的扩展,如下所示:

date_default_timezone_set('Europe/Berlin');
$datetime = new DateTime("now");

// result: Thu Oct 24 2013 16:34:14 Europe/Berlin+0200 (CEST) 
echo $datetime->format("D M d Y H:i:s eO (T)");

解决您的问题的第二个示例:

$timezone = new DateTimeZone('Asia/Calcutta');
$datetime = new DateTime("now", $timezone);

// result: Thu Oct 24 2013 20:04:14 GMT+0530
echo $datetime->format("D M d Y H:i:s \G\M\TO");

有关更多示例,只需查看 php 时间和日期相关对象和函数:http ://www.php.net/manual/en/book.datetime.php

于 2013-10-24T14:37:42.983 回答
0

好吧,我用最糟糕的方式解决了它

$date = str_replace('Asia/Kolkata+0530', 'GMT+0530', date('D M d Y H:i:s eO (T)'));
于 2013-10-10T09:49:40.923 回答