2015-10-21 3 views
-1

Я попытался добавить визуализацию функции +2 часа до даты в php (wordpress).
мой кодДобавить формат от 2 часов до даты в php

function my_last_login() { 
return 'j F Y H:i'; 
} 

печатает 21 октября 2015 15:36 я хочу 21 октября 2015 17:36
Я уже пробовал с StrToTime, но я не очень хорошо в PHP. я попытался

function my_last_login() { 
return ('j F Y H:i',strtotime('+2 hours')); 
} 
+1

Это не очень понятно. Где называется эта функция? Вызов 'my_last_login' будет просто эхом' j F Y H: i'. –

+0

Строка 'return 'j F Y H: i';' просто возвращает эту строку, поэтому информацию о времени нужно добавить где-то еще - вам нужно будет изменить код там. Но ваше требование делает меня немного подозрительным, пытаетесь ли вы решить проблемы с часовым поясом? – fvu

+0

@ giangi90 Ваш код в порядке, просто добавьте 'date' сразу после' return'. Кроме того, используйте второй код, и вам не нужно будет устанавливать часовой пояс. –

ответ

3

насчет найти правильный часовой пояс и положил его в функцию date_default_timezone_set()? Вот список timezones. Вам нужно только найти часовой пояс, который составляет +2 часа от вашего времени.

0

Если my_last_login только return В формате даты string, то вы не сможете добавить 2 часа внутри функции.

Вы должны найти, где my_last_login вызывается для изменения даты.

Пример Дата модификации:

$date_format_string = 'j F Y H:i'; 
$test_date_string = "21 October 2015 16:37"; 
$test_date_timestamp = strtotime($test_date_string); 
$test_date = date($date_format_string, $test_date_timestamp); 
$future_date_timestamp = strtotime($test_date_string . " +2 hours"); 

echo "Test Date (string): " . $test_date_string; 
echo "<br>"; 
echo "Test Date Timestamp (integer): " . $test_date_timestamp; 
echo "<br>"; 
echo "Future Date Timestamp (+2 Hours): " . $future_date_timestamp; 
echo "<br>"; 
echo "Future Date (string): " . date($date_format_string, $future_date_timestamp); 

PHP date принимает два аргумента, string $format и int $timestamp; он возвращает форматированную строку даты.

php strtotime принимает два аргумента: string $time и int $timestamp; она возвращает метку времени на успех, который был бы идеальным для date

выше будет выход следующее:

Test Date (string): 21 October 2015 16:37 
Test Date Timestamp (integer): 1445445420 
Future Date Timestamp (+2 Hours): 1445452620 
Future Date (string): 21 October 2015 18:37 
2

Согласно php documentation вы можете сделать что-то похожее на это:

<?php 
    $date = new DateTime('2000-01-01'); 
    $date->add(new DateInterval('P2H')); 
    echo $date->format('Y-m-d H:i:s') "\n"; 
    ?> 

или Вы можете установить дату и дату своего часового пояса, чтобы избежать добавления или вычитания для примера page и вот фрагмент кода из p возраст:

// Specified date/time in the specified time zone. 
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru')); 
echo $date->format('Y-m-d H:i:sP') . "\n"; 
Смежные вопросы