使用Carbon api进行日期时间编码



我试图使用碳API(https://github.com/briannesbitt/Carbon)为我的项目在Codeigniter。但是我用起来有困难。我首先用composer安装了它。但是当我在我的项目中使用以下代码时:

require 'vendor/autoload.php';
use CarbonCarbon;
printf("Now: %s", Carbon::now());

我得到以下错误:

syntax error, unexpected 'use' (T_USE) in ...

所以,我尝试手动安装它(复制和过去的碳类文件到我的项目)。然后,当我测试以下代码时,它工作正常:

 $now = Carbon::now();
 die($now);

但是当我尝试这样运行时:

$dtKtm = Carbon::createFromFormat('Y-m-d H:i:s', $data['banners'][0]['date_added']); 
echo Carbon::now()->diffForHumans($dtKtm, false);

显示"Class 'Translator' not found"错误。

谁能帮我解决这个问题?

碳日期时间库使用CodeIgniter

CodeIgniter应用程序设置:

首先让我给你介绍一下我的CodeIgniter项目在本地主机上的设置,如下所示:

/
|- gheapp
|    |- application
|    |- system
|    L- vendor
|    |     |-bin
|    |     |-composer
|    |     |-nesbot/carbon
|    |     |-symfony
|    |
|    |----- composer.json
|    L----- composer.lock
|
|- public_html
|    |- .htaccess
|    L- index.php

index.php中,我设置了以下到系统和应用程序的路径:

$system_path = '../gheapp/system';
$application_folder = '../gheapp/application';

注1:通过这样做,我们的应用程序源代码首先对公众隐藏。
注2:有关我的CodeIgniter设置的更多细节,请遵循我的以下StackOverflow答案

步骤1:如何获取包。

使用Composer,我将Cabron包获取到我的CodeIgniter应用程序。我的composer.json看起来如下(为了方便起见,它简化了)。

{
  "require": {
    "nesbot/carbon": "^1.22"
  }
}

在你运行composer命令composer install之后,它会在你的CI应用根目录下创建vendor文件夹,并将Carbon包如上所示放在文件夹结构中。

步骤2:自动加载Composer下载的包:

在我的index.php底部行之前

require_once BASEPATH.'core/CodeIgniter.php';

我写了以下两行:

$composer_vendor_path = '../gheapp/vendor';
require_once $composer_vendor_path.'/autoload.php';

所以现在我的CodeIgniter应用程序知道如何以及在哪里加载编译器安装的包。

步骤3:如何在我的控制器中使用Carbon包:

在我的控制器(或模型)的任何方法函数中,我可以使用Carbon如下:

    $date = CarbonCarbon::today();
    echo $date;   // output:  2017-01-21 00:00:00
    echo '<br/>'.$date->diffForHumans();  // output: 7 hours ago

有关使用Carbon的详细信息,请访问以下链接:Carbon from nesBot

我希望我的答案将来会对其他人有用/有帮助!: -)

我发现最简单的方法是:

  1. 安装碳:

    • composer require nesbot/carbon
  2. 打开application/config/config.php并更改:

    • $config['composer_autoload'] = FALSE;或其他
    • $config['composer_autoload'] = FCPATH . '/vendor/autoload.php';
  3. 调用控制器中的任意碳函数:

    • $data['carbondate'] = CarbonCarbon::now();

您需要在引导程序中自动加载供应商文件夹(在index.php文件中,require_once BASEPATH.'core/CodeIgniter.php';底部行之前)。

require __DIR__ . '/vendor/autoload.php';

您需要在您的模型/控制器中导入库名称空间(无论您在哪里使用Carbon)。

use CarbonCarbon;

最新更新