#javascript #php #laravel
#javascript #php #laravel
Вопрос:
В настоящее время я использую js-скрипт с данными для отображения моих данных в моем blade.php . Я хочу сравнить столбец created_at с текущей системной датой и изменить цвет строки данных на красный, если он предшествует текущей дате. Однако вся моя строка данных изменяется на красный, даже если дата данных совпадает с текущей датой. Я отформатировал дату в своей базе данных как Carbon::parse($date)-> toDateString() и также изменил формат текущей даты, который я получаю в своем javascript, на формат toDateString() .
Ниже приведены мои коды javascript на blade.php
let date = new Date();
now = date.toDateString();
var ordersTable = $('#orders_table').DataTable({
stateSave: true,
"rowCallback": function(row, data, index){
if(data[1] < now){
$(row).css('color', 'red');
}
else{
$(row).css('color', 'green');
}
},
Ниже приведен снимок экрана фиктивных данных, которые у меня есть:
введите описание изображения здесь
Надеюсь, я смогу четко сформулировать вопрос
Комментарии:
1. Можете ли вы добавить строки данных, которые возвращаются с сервера. В этом случае
Carbon::parse($date)->toDateString()
формат должен отличаться от того, что у вас есть в javascript. Для сравнения строковых дат в javascript они оба должны иметь одинаковый формат.2. Я предполагаю
data[1]
, что содержит формат «Y-m-d» на стороне php, и вы сравниваете это сFri Mar 05 2021
этим форматом в javascript?3. Привет, спасибо за комментарий Алекс, я думаю, что сейчас это работает! Я использовал этот формат для своей php-версии
Carbon::parse($date)->format('D M d Y');
4. Я также изменил условие сравнения if, чтобы
if (data[1] !== now)
оно работало, если я использую<
оператор, он по какой-то причине не работает5. Было бы здорово сохранить привычку сравнивать дату объекта вместо строки, чтобы избежать таких странных проблем.