Как исправить неверную дату в карбоне сейчас () с помощью -> isoFormat ('d MMM Y') - PullRequest
1 голос
/ 06 ноября 2019

У меня проблема с углеродом.

Carbon :: now () работает нормально, но мне нужно использовать этот код -> isoFormat ('d MMM Y') для конвертации даты в удобный формат"6 ноября 2019".

Но после преобразования возвращается значение с другой датой (днем).

ПОЧЕМУ? что такое плохо?

обновление: и есть ли идеи, как я могу использовать его на мультиязычных сайтах в проекте laravel?

пример: пользователь EN имеет 6 ноября 2019 года, пользователь CS имеет 6 лис 2019 // чешский

-> isoFormat ('d MMM Y') // имеют неверную дату, но в cs пишут "6 lis 2019" -> format ('d M Y') // имеют хорошую дату, но в cs lang используют английский "6 ноября 2019 "

     <?php
        use Carbon\Carbon;

        $datetime = Carbon::now();
        $newdate = $datetime->isoFormat(' d MMM Y ');

        echo $datetime;  // show 2019-11-06 13:35:49

        echo $newdate;   // show 3 nov 2019

       ?>

Ответы [ 4 ]

0 голосов
/ 06 ноября 2019

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

$formated_date = Carbon::createFromFormat('d M Y', Carbon::now());
echo $formated_date; 
0 голосов
/ 06 ноября 2019

Carbon - это просто класс, расширяющий DateTime. Используйте DateTime! https://www.php.net/manual/en/class.datetime.php

когда вы echo $datetime, в Carbon явно есть функция __toString(), которая по умолчанию выглядит как стандартный Y-m-d H:i:s формат.

Ничто не выглядит неправильнокроме вашего формата.

<?php

$datetime = new DateTime();
$newdate = $datetime->format(' d M Y ');

echo $datetime->format('Y-m-d H:i:s');  // shows 2019-11-06 13:35:49

echo $newdate;   // shows 6 Nov 2019
0 голосов
/ 06 ноября 2019

и любая идея, как я могу использовать его на мультиязычных сайтах в проекте laravel?

пример: пользователь EN имеет 6 ноября 2019 года пользователь CS имеет 6 лис 2019 // чешский

-> isoFormat('d MMM Y') // имеют неверную дату, но в cs пишут "6 lis 2019" -> format ('d M Y') // имеют хорошую дату, но в cs lang используйте английский "6 nov 2019"

0 голосов
/ 06 ноября 2019

Как насчет $newdate = $datetime->format('d M Y');

Вывод 06 Nov 2019

...