使用 Carbon api 作为日期时间 codeigniter

Using Carbon api for date time codeigniter

我正在尝试为我在 Codeigniter 中的项目使用 Carbon API(https://github.com/briannesbitt/Carbon)。但是我在使用它时遇到了麻烦。 我首先使用 composer 安装它。但是当我在我的项目中使用以下代码时:

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

我收到以下错误:

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

所以,我尝试手动安装它(将 Carbon class 文件复制并粘贴到我的项目中)。然后当我测试以下代码时它工作正常:

 $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);

It gives me " Class 'Translator' not found" error.

谁能帮我解决这个问题。

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

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

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

use Carbon\Carbon;

只有这样你才能使用图书馆。

Carbon Date Time 库与 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: 这样做,我们的应用程序源代码首先对 public 隐藏。
注意 2:有关 nitty-gritty 我的 CodeIgniter 设置的更多信息,请遵循以下 Whosebug Answer of mine

第 1 步:如何获取 Carbon 包。

我使用 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 = Carbon\Carbon::today();
    echo $date;   // output:  2017-01-21 00:00:00
    echo '<br/>'.$date->diffForHumans();  // output: 7 hours ago

有关使用 Carbon 的更多详细信息,请访问以下 link:Carbon from nesBot

我希望我的回答将来会 useful/helpful 给其他人! :-)

我找到的最简单的方法是:

  1. 使用以下方式安装碳:

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

    • $config['composer_autoload'] = FALSE; 或者什么
    • $config['composer_autoload'] = FCPATH . '/vendor/autoload.php';
  3. 调用控制器中的任何碳功能:

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