如何通过-> isoFormat('d MMM Y')修复carbon now()中的不良日期

问题描述 投票:1回答:4

我在用碳laravel时遇到问题。

Carbon :: now()可以,但是我需要使用此代码-> isoFormat('d MMM Y')将日期转换为用户友好格式“ 2019年11月6日”。

但是转换后的返回值具有不同的日期(天)。

为什么?有什么不好?

更新:以及我如何在laravel项目的多语言站点中使用它?

示例:用户EN具有2019年11月6日用户CS具有6个lis 2019 //捷克

-> isoFormat('d MMM Y')//日期不好,但在cs中写“ 6 lis 2019”-> format('d M Y')//日期好,但在cs lang中使用英语“ 2019年11月6日“

     <?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

       ?>
php laravel php-carbon
4个回答
0
投票

$newdate = $datetime->format('d M Y');如何

输出为06 Nov 2019


0
投票

碳只是扩展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
投票

以及如何在laravel项目的多语言站点中使用它的任何想法?

示例:用户EN在2019年11月6日用户CS有6 lis 2019 // czech

-> isoFormat('d MMM Y')//日期错误,但在CS中输入“ 6 lis 2019”-> format('d M Y')//的日期很好,但是在cs lang中使用英语“ 2019年11月6日”


0
投票

您也可以如下使用碳Carbon::createFromFormat

$formated_date = Carbon::createFromFormat('d M Y', Carbon::now());
echo $formated_date; 
© www.soinside.com 2019 - 2024. All rights reserved.