Сведения о вопросе

CPdeveloper

20:11, 27th August, 2020

Теги

php   mysql   time   timestamp   date    

Если у меня есть строка PHP в формате YYYY-DD-MM и timestamp в MySQL, есть ли хороший способ конвертировать между ними?

Просмотров: 410   Ответов: 6

Мне интересно провести сравнение между строкой даты и MySQL timestamp. Однако я не вижу легкой конверсии. Неужели я упускаю что-то очевидное?



  Сведения об ответе

DAAA

06:26, 11th August, 2020

Преобразование из timestamp в формат:

date('Y-m-d', $timestamp);

Преобразование из форматированного в timestamp:

mktime(0, 0, 0, $month, $day, $year, $is_dst);

Дополнительную документацию смотрите в разделе дата и время mktime .

Когда речь заходит о хранении, вы сами решаете, использовать ли формат даты MySQL для записи в виде отформатированной даты; как целое число для хранения в виде UNIX timestamp; или вы можете использовать формат MySQL TIMESTAMP, который преобразует числовое значение timestamp в читаемый формат. Проверьте MySQL Doc для TIMESTAMP информации.


  Сведения об ответе

lesha

16:06, 22nd August, 2020

Вы можете избежать необходимости использовать strtotime() или getdate() в PHP , используя функцию MySQL UNIX_TIMESTAMP() .

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable

Результирующие данные будут представлять собой стандартное целое число Unix timestamp, поэтому вы можете провести прямое сравнение с time() .


  Сведения об ответе

ASSembler

14:41, 9th August, 2020

Я написал эту маленькую функцию, чтобы упростить процесс:

/**
 * Convert MySQL datetime to PHP time
 */
function convert_datetime($datetime) {
  //example: 2008-02-07 12:19:32
  $values = split(" ", $datetime);

  $dates = split("-", $values[0]);
  $times = split(":", $values[1]);

  $newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]);

  return $newdate;
}

Я надеюсь, что это поможет


  Сведения об ответе

DAAA

13:03, 5th August, 2020

strtotime() и getdate() - это две функции, которые можно использовать для получения дат из строк и меток времени. Однако стандартной библиотечной функции, преобразующей временные метки между MySQL и PHP, не существует.


  Сведения об ответе

qwerty101

21:35, 16th August, 2020

Используйте функцию PHP Date . Возможно, вам придется преобразовать mysql timestamp в Unix timestamp в вашем запросе, используя функцию UNIX_TIMESTAMP в mysql.


  Сведения об ответе

Chhiki

12:26, 17th August, 2020

Строка даты формы:

YYYY-MM-DD

не имеет никакого времени, связанного с ним. A MySQL Timestamp имеет вид:

YYYY-MM-DD HH:mm:ss

чтобы сравнить их, вам придется либо добавить время в строку даты, например полночь

$datetime = '2008-08-21'.' 00:00:00';

а затем используйте функцию для сравнения времени epoc между ними

if (strtotime($datetime) > strtotime($timestamp)) {
    echo 'Datetime later';
} else {
    echo 'Timestamp equal or greater';
}


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться