2009-02-12 4 views
1

Привет Я использую php и sql через odbc для написания программы, и я получил abit, застрявший в той части, где я хочу отображать текущую дату/время в формате даты (' Ymd H: i: s), но он отображает только время gmt. Я хочу добавить к нему 8 часов. Любой из вас сможет мне помочь. Большое вам спасибо.Хотите показать текущую дату/время

ответ

2

Отъезд date_default_timezone_set. Вы можете сделать что-то вроде:

date_default_timezone_set('America/Los_Angeles'); 
print 'Current datetime is: ' . date('Y-m-d H:i:s'); 

Вы могли бы использовать, чтобы установить часовой пояс на то, что часовой пояс вам нужно время, чтобы быть, а затем использовать date нормально. Кроме того, вы можете сделать это, используя strtotime:

print 'Current datetime is: ' date('Y-m-d H:i:s', strtotime('+8 hours')); 
+0

да, но это только показывает время, GMT время я хочу 8hours быстрее – 2009-02-12 04:25:40

+0

Вы можете установите часовой пояс на любой часовой пояс, который вы хотите, и получите нужное время. –

+0

Или вы можете использовать второй метод, который я добавляю, чтобы просто добавить 8 часов к текущему времени. –

0

Если вы ищете способ, чтобы отобразить метку времени в местное время пользователя, вы можете использовать JavaScript:

function showtime(t) 
{ 
    if (t == 0) 
    { 
     document.write("never"); 
     return; 
    } 

    var currentTime = new Date(t); 
    var month = currentTime.getMonth() + 1; 
    var day = currentTime.getDate(); 
    var year = currentTime.getFullYear(); 
    var hours = currentTime.getHours(); 
    var minutes = currentTime.getMinutes(); 
    var seconds = currentTime.getSeconds(); 
    document.write(); 
    if (minutes < 10){ 
    minutes = "0" + minutes; 
    } 
    if (seconds < 10){ 
    seconds = "0" + seconds; 
    } 
    document.write(month + "/" + day + "/" + year + "&nbsp;&nbsp;&nbsp;" + 
       hours + ":" + minutes + ":" + seconds + " "); 
    if(hours > 11){ 
    document.write("PM"); 
    } else { 
    document.write("AM"); 
    } 
} 

Тогда если вы необходимо отобразить время, просто сделать звонок на него в HTML и сращивания в значении от PHP:

<script type="text/javascript">showtime(<?=$time."000"?>)</script> 
0

Я бы держаться подальше от метода временной зоны.

Если я правильно понял, вы хотите добавить время, изменив его. Примером может быть: Задача была создана СЕЙЧАС и должна быть завершена через 8 часов. Метод часового пояса изменит только дисплей даты и времени. Только измените настройку часового пояса, если вы знаете часовой пояс своего посетителя, и время datetime должно отображаться относительно них.

Сейчас: 1234418228 - 2009/02/12 00:57:08 в Монреале или 2009/02/11 09:57:08 в Сан-Франциско. Это тот самый момент.

К первому ответу, date() и strtotime() относятся ваши друзья.

strtotime («+8 часов», $ now) $ теперь является меткой времени, когда это должно быть связано. Поэтому, если ваше время начала - это не время(), вы все равно можете использовать это. например

strtotime("+8 hours", strtotime("2009/03/01 00:00:00"); (8AM on 2009/03/01) 

Однако при работе с интервалами, подсчитанных в течение нескольких недель или менее, я предпочитаю делать это «математически»

$StartTime = strtotime("2009/03/01 13:00:00"); 
$EndTime = $StartTime + (8 * 60 * 60); 
date("Y/m/d H:i:s", $EndTime) ==> "2009/03/01 21:00:00" 

3600 секунд в час, 86400 в день.

Вы не можете использовать этот метод в течение месяцев, кварталов или лет, потому что количество секунд, в течение которых они длится, варьируется от одного до следующего.

0

Если вы хотите использовать время для определенного часового пояса, то предпочтительнее использовать date_default_timezone_set(). в любом случае вы можете предоставить функцию date() еще один parmater: int timestamp. целое число, представляющее метку времени, для которой вам нужна дата(), чтобы вернуть информацию. так что если вы хотите, чтобы показать дату («YMD H: я: s») на данный момент вы можете использовать это:

$now = date('Y-m-d H:i:s', time()); // time() returns current timestamp. 
// if you omit the second parameter of date(), it will use current timestamp 
// by default. 
$_8hoursLater = date('Y-m-d H:i:s', time()+60*60*8); 
$_8hoursBefore = date('Y-m-d H:i:s', time()-60*60*8); 
Смежные вопросы