Дата неверна, когда JS передал дату в PHP

#javascript #php #date #laravel-5 #vuejs2

#javascript #php #Дата #laravel-5 #vuejs2

Вопрос:

Я использую Laravel 5.7, и у меня возникла проблема с передачей строки даты из JS в PHP.

Перед тем, как я передал дату в Vue JS, я поставил console.log() , чтобы увидеть фактическое значение, и у меня есть это:

Fri Feb 01 2019 00:00:00 GMT 0800 (Philippine Standard Time)

и затем, когда я получаю ее на контроллер Laravel, я Log::info() хочу показать полученное значение, но у меня есть это:

2019-01-31T16:00:00.000Z

кто-нибудь сталкивался с такой же проблемой и сумел ее исправить? Пожалуйста, помогите

Комментарии:

1. Можете ли вы поделиться более подробной информацией? Как вы отправляете данные на серверную часть? Вы как-то анализируете или манипулируете этим? Обычно строка является строкой и не должна изменяться таким образом. Кроме того, в чем ваша реальная проблема с этим?

2. Как показано ниже, эти даты одинаковы, просто показывают разные часовые пояса. Имея это в виду, с какой проблемой вы столкнулись?

3. Fri Feb 01 2019 00:00:00 GMT 0800 (Philippine Standard Time) это точно такой же момент времени, как 2019-01-31T16:00:00.000Z … одно из них — стандартное время Pillippine, другое — UTC

4. @NicoHaase Я передал ее с помощью axios post

Ответ №1:

Это не другая дата, просто формат ISO при преобразовании даты в строку.

вы можете снова создать объект date, используя new Date()

 let date = new Date()
console.log(date)
console.log(date.toString())
let date2 = new Date(date.toString())
console.log(date2)  

Комментарии:

1. И что вы предлагаете изменить?

2. в чем проблема? не спрашивается, в чем проблема с преобразованным форматом.

3. проблема, с которой я столкнулся, заключается в том, что при передаче даты в контроллере вместо февраля в ней будет январь ( 2019-01-31T16:00:00.000Z )

4. Это то же самое время даты, вам уже говорили об этом несколько человек.

5. @Imperatura при необходимости вам придется управлять смещением часового пояса в вашем коде.