Я использую библиотеку для преобразования Gregorian date в дату моей страны.
Следующий код является примером моей кодировки:
Include_once("jdf.php");
$test_date = "2018-09-09 06:00:00";
$changed_date = jdate('Y-m-d H:i:s', strtotime($test_date));
echo $changed_date;
Но когда я использую это для строк базы данных, просто Y-m-d становится convert. Следующий код - это мой сценарий:
try {
$stmt = $conn->prepare("SELECT date as table_date FROM api_table;");
$stmt->execute();
Include("jdf.php");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
extract($row);
$convert_date = jdate("Y/m/d H:i:s", strtotime($table_date));
echo $convert_date;
}
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
Вы можете мне помочь, ребята ??
Кроме того, какой тип данных представляет собой столбец «дата» в api_table?
Тип даты @FabianGillenius - datatime, и вывод просто преобразует H: i: s первой строки и преобразует все строки Y / m / d
Идентична ли дата, хранящаяся в базе данных, переменной $ test_date? Если вы повторите оба strtotime (), получите ли вы тот же результат?
@FabianGillenius Это сэкономленное время в базе данных: 2018-09-06 08: 13: 24.700412, и если я удалю strtotime(), я получу эту ошибку: A non well formed numeric value encountered
@FabianGillenius я работаю для первой строки, но не для других строк
@FabianGillenius Я преобразовал Y-m-d для всех строк
Во втором примере вы используете формат Y / m / d вместо Y-m-d. Это не должно иметь значения, но я не знаком с используемой вами библиотекой. Что произойдет, если вы измените второй пример на Y-m-d?
@FabianGillenius Неважно. мой друг, моя проблема связана с H: i: s no Y-m-d, Y-m-d преобразование выполнено успешно, но мой скрипт просто преобразует H: i: s для первой записи.
Я понимаю это, но иногда ошибка возникает из-за части кода, работающего иначе. Я не вижу ошибок в вашем коде. Не могли бы вы поделиться ссылкой на библиотеку, которую вы используете?
@FabianGillenius jdf.scr.ir/download/jdf_dl.php
Единственное отличие, которое я вижу, помимо формата, - это точность. Не могли бы вы попробовать следующее, чтобы исключить странные поведенческие ошибки? После извлечения ($ row); сделайте это: $ new_date = explode ('.', $ table_date); $ convert_date = jdate ("Г / м / д H: i: s", strtotime ($ new_date [0]));
@FabianGillenius Не работает.






Просто установите часовой пояс:
date_default_timezone_set("Asia/Tehran");
Какой результат вы ожидаете получить и какой результат вы получите на самом деле?