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

Вы делите Int на Int.

Целые деления округляются до ближайшего целого числа к нулю. Поэтому, например, 359/360 не является числом, близким к 1, оно равно 0. 360/360 до 719/360 равно 1. 720/360 до 1079/360 равно 2 и так далее.

Но ваше использование опций является жестоким. Я бы написал

let myInt = Int(graderna.text!)
let myInt2 = Int(radien.text!)

if let realInt = myInt, realInt2 = myInt2 {
    let pi = 3.1415926
    let lutning = 360.0

    let result = Double (realInt) * (pi / lutning)
    svar2.text = "\(result)"
}
6
задан Thomas Owens 21 August 2008 в 17:26
поделиться

6 ответов

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

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

Преобразование из отформатированного для добавления метки времени:

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

Посмотрите дату и mktime для дальнейшей документации.

Когда дело доходит до хранения Вам решать, использовать ли Формат даты MySQL для хранения как отформатированная дата; как целое число для хранения как метка времени UNIX; или можно использовать ФОРМАТ МЕТКИ ВРЕМЕНИ MySQL, который преобразовывает числовую метку времени в читаемый формат. Проверьте MySQL Doc на информацию о МЕТКЕ ВРЕМЕНИ.

14
ответ дан 8 December 2019 в 12:24
поделиться

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

0
ответ дан 8 December 2019 в 12:24
поделиться

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

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable

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

3
ответ дан 8 December 2019 в 12:24
поделиться

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

0
ответ дан 8 December 2019 в 12:24
поделиться

Я записал эту небольшую функцию для упрощения процесса:

/**
 * 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;
}

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

2
ответ дан 8 December 2019 в 12:24
поделиться

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

YYYY-MM-DD

нет времени связанный с ним. 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';
}
0
ответ дан 8 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: