Я хочу разбить строку на две переменные - PullRequest
0 голосов
/ 29 ноября 2018

Я выбрал две даты в палитре диапазонов дат и сохранил их в одном столбце базы данных, но он хранит только одну дату, например: 0000-00-00.Я не могу сохранить две даты в одном столбце, поэтому хочу разбить эту строку на две переменные по дефису (-).

Это моя функция диапазона дат:

<script>
   $(function () {

       //Initialize Select2 Elements
     $('.select2').select2();

     //Date range picker
     $('#bilty_date_range').daterangepicker();

     });
 </script>

Этокод вставки моей даты:

'bilty_date_range'      => date('y-m-d',strtotime($bilty_date_range)),

Я выбираю дату следующим образом: enter image description here

Результат бэкэнда такой: 11/07/2018 - 12/25/2018.

Ответы [ 4 ]

0 голосов
/ 29 ноября 2018

Если вы хотите разделить его через MySQL, вы можете использовать SUBSTRING_INDEX , например:

MariaDB [(none)]> SET @d := '11/07/2018 - 12/25/2018';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]>
MariaDB [(none)]>
MariaDB [(none)]> SELECT
    -> SUBSTRING_INDEX(@d, '-', 1)  AS date_from,
    -> SUBSTRING_INDEX(@d, '-', -1) AS date_to;
+-------------+-------------+
| date_from   | date_to     |
+-------------+-------------+
| 11/07/2018  |  12/25/2018 |
+-------------+-------------+
1 row in set (0.000 sec)

MariaDB [(none)]>
0 голосов
/ 29 ноября 2018
var mystr = '11/07/2018 - 12/25/2018';

//Splitting it with " - " as the separator
var myarr = mystr.split(" - ");


var dateA = myarr[0];  // '11/07/2018'
var dateB = myarr[1];  // '12/25/2018'
0 голосов
/ 29 ноября 2018

Используйте PHP-функцию Разнесите , чтобы разбить строку, затем создайте действительную дату, используя DateTime interface из строки, чтобы сохранить ее как тип date в базе данных, а не строку!

<?php 

$dates = '11/07/2018 - 12/25/2018';
$d = explode('-', $dates);

$dt1 = new DateTime($d[0]);
$dt2 = new DateTime($d[1]);

print_r($dt1);
print_r($dt2);

echo $dt1->format('Y-m-d');
echo PHP_EOL;
echo $dt2->format('Y-m-d');

DEMO: https://eval.in/1063328

Выход:

DateTime Object
(
    [date] => 2018-11-07 00:00:00.000000
    [timezone_type] => 3
    [timezone] => UTC
)
DateTime Object
(
    [date] => 2018-12-25 00:00:00.000000
    [timezone_type] => 3
    [timezone] => UTC
)
2018-11-07
2018-12-25
0 голосов
/ 29 ноября 2018

Функции разделения строк доступны как в Javascript, так и в PHP.

В php вы можете просто использовать

$arr = explode("-", $str);

$date_start = $arr[0];
$date_end = $arr[1];

На самом деле вам даже не нужно хранитьобе на две отдельные переменные после того, как вы получили их в массиве.Просто передайте $arr[0] и $arr[1] при сохранении их в базе данных.

т.е.

'date_start'      => date('y-m-d',strtotime($arr[0])),
'date_end'      => date('y-m-d',strtotime($arr[1])),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...