【问题标题】:Using Carbon api for date time codeigniter使用 Carbon api 进行日期时间代码点火器
【发布时间】:2016-12-23 23:47:22
【问题描述】:

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

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

我收到以下错误:

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

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

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

它给了我“找不到类'翻译'”错误。

谁能帮我解决这个问题。

【问题讨论】:

  • 原始问题已得到解答。这是一个全新的问题。
  • 感谢您的努力,cherrysoft。但是我仍然无法在我的项目中使用 Carbon API 进行日期/时间转换,因此相应地修改了我的问题。
  • 很乐意提供帮助,但原始问题已得到解答。祝你好运解决。

标签: php codeigniter datetime php-carbon


【解决方案1】:

使用 CodeIgniter 使用碳日期时间库

CodeIgniter 应用设置:

首先给大家介绍一下我在localhost上的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 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 应用知道如何以及在何处加载 composer 安装的包。

第 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 的更多详细信息,请访问以下链接:Carbon from nesBot

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      use Carbon\Carbon;
      

      只有这样你才能使用库。

      【讨论】:

      • 我已经更新了我的问题(问题)。请再看一遍。有什么办法解决这个问题?
      • 如果您将原始问题的答案标记为正确,因为它是我可以看到的正确答案,但是,您应该提出一个新问题,因为这是一个完全不同的问题。跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 2016-10-24
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      相关资源
      最近更新 更多