PHP: как взять дату / время из формы, отформатировать в строку, а затем вставить в базу данных?

Итак, у меня есть форма, которая содержит множество разных вещей, которые входят в базу данных, когда я добавил в форму средства проверки даты и времени, они попадают в базу данных в виде строки (Пример: «2018-05-29» «10: 47: 00.000000» - вот как они выглядят, когда идут в "Здесь")

Я хочу переформатировать их, чтобы при вставке в базу данных они отображались как настоящие слова.

(Пример: «29 мая 2018 года», «вторник, 29 мая», «10:47 AM / PM» что-то в этом роде)

Так что, когда я использую свой php и беру данные из базы данных и отображаю их на странице, он показывал фактические слова, а не просто числа.

(Примечание: Да, я пробовал пойти другим путем и преобразовать его, когда он выходит из базы данных, но из-за того, как я показываю вещи, это не сработает)

<?php

$servername = "";
$username = "";
$password = "";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Select Database
mysqli_select_db($conn, "czt_database");

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

echo "Connected successfully";

$game = mysqli_real_escape_string($conn, $_POST['Game']);
$map = mysqli_real_escape_string($conn, $_POST['Map']);
$challenge = mysqli_real_escape_string($conn, $_POST['Challenge']);
$extra = mysqli_real_escape_string($conn, $_POST['Extras']);
$players = mysqli_real_escape_string($conn, $_POST['Players']);
$entryfee = mysqli_real_escape_string($conn, $_POST['Type']);
$entrycost = mysqli_real_escape_string($conn, $_POST['Fee']);
$prizemoney = mysqli_real_escape_string($conn, $_POST['Prize']);
$entrymax = mysqli_real_escape_string($conn, $_POST['Entries']);
$startdate = mysqli_real_escape_string($conn, $_POST['Start-date']);
$starttime = mysqli_real_escape_string($conn, $_POST['Start-time']);
$enddate = mysqli_real_escape_string($conn, $_POST['End-date']);
$endtime = mysqli_real_escape_string($conn, $_POST['End-time']);
$rules = mysqli_real_escape_string($conn, $_POST['Rules']);

$sql = "INSERT INTO tournaments (tournament_game, tournament_map, tournament_challenge, tournament_extra, tournament_players, tournament_entryfee, tournament_entrycost, tournament_prize, tournament_entrymax, tournament_startdate, tournament_starttime, tournament_enddate, tournament_endtime, tournament_rules) 
        VALUES ('$game', '$map', '$challenge', '$extra', '$players', '$entryfee', '$entrycost', '$prizemoney', '$entrymax', '$startdate', '$starttime', '$enddate', '$endtime', '$rules');";
mysqli_query($conn, $sql);

header("Location:../Create-A-Tournament.html");

?>
carbon.nesbot.com/docs, все необходимое
Shobi 30.05.2018 09:26

Вам необходимо отформатировать дату, возвращаемую из базы данных. Вы можете сделать это с помощью функции strtotime () и функции date ().

Bernhard 30.05.2018 09:29

Вы также должны изучить использование подготовленных операторов вместо того, чтобы строить свой запрос таким образом. Это делает ваш код более подробным и менее подверженным ошибкам, которые могут вызвать ошибки внедрения SQL.

Magnus Eriksson 30.05.2018 09:30
"они входят в базу данных в виде строки" - Вы храните дату и время в виде строк? Эти столбцы должны быть типами «дата» и «время» в базе данных.
Magnus Eriksson 30.05.2018 09:33

Да, столбцы, в которые они входят, уже являются типами даты и времени в базе данных. Я имею в виду в средстве выбора даты, когда вы выбираете дату, когда она отображается. «2018-05-29» и «7:29 AM», а в базе данных также отображаются как «2018-05-29» и «7: 29: 00.00000». Я хочу попытаться сделать так, чтобы они отображались в базе данных как «Понедельник, 29 мая» или «7:29 утра».

Nanikos 30.05.2018 09:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать код примерно так, как показано ниже

$startDate=date("l dS M Y", strtotime($_POST['start-date'])); //This will give result as Tuesday 7th May 2018.

$startTime=date("h:i A", strtotime($_POST['start-time']));  // This returns time as 04:56 AM/PM

$startdate = mysqli_real_escape_string($conn, $startDate);
$starttime = mysqli_real_escape_string($conn, $startTime);

Затем вы можете использовать указанные выше переменные для хранения в БД.

Надеюсь, поможет.

@Nanikos: Я обновил код. пожалуйста, проверьте, работает ли он.

jmsds 30.05.2018 15:36

Все хорошо, я закончил тем, что полностью изменил способ отображения данных, и после многих проб и ошибок он заработал :) Ваш пост действительно помог мне добраться до этого момента, так что спасибо!

Nanikos 31.05.2018 03:16

@Nanikos: Рад, что помог.

jmsds 31.05.2018 07:30

Другие вопросы по теме