如何在CL中构造可重用的DateTime对象?

时间:2015-05-10 02:51:10

标签: php codeigniter datetime

我一直在尝试在CodeIgniter中构建DateTime object。我从图书馆加载它。但我似乎无法使用给定的$ time_zone参数构造DateTime()。

我能看到这种情况的唯一方法是在所有方法中添加DateTime对象。

这是使用mvc的一大缺点。有没有人有其他选择?

我的代码:

class Create_Timestamp 
{
     private $date_time;

     /**
     * @param $time_zone : gets passed in from a cookie. Cookie value is an array that gets retrieved from the DB. In the
     * array there time zone value
     * @return int
     */

     public function __construct($time_zone)
     {
         $this->date_time = new DateTime("now", new DateTimeZone($time_zone));
     }

     public function TimeStamp()
     {
       $time_stamp =  $this->date_time->getTimestamp();
       return $time_stamp;
      }

      public function convertTimeStamp($unix_time_stamp)
      {
           fb($unix_time_stamp);
           $this->date_time->createFromFormat("m/d/Y", $unix_time_stamp);
           //$this->date_time->setTimestamp($unix_time_stamp);
           $formatted_time_stamp = $this->date_time->format("m/d/Y h:i:s A");
    return $formatted_time_stamp;
     }
}

1 个答案:

答案 0 :(得分:0)

不要重新发明轮子PIE(Proudly Invented Elsewhere)。你会给自己和别人带来很多悲伤。

Carbon包为例。

如果您有幸使用CI v.3,只需转到您的应用程序文件夹并执行

$ composer require nesbot/carbon

并开始使用

Carbon\Carbon::createFromTimestamp($time_stamp, $time_zone)->toDateTimeString();

如果你正在使用CI v.2.X仍然杠杆作曲家。转到您的应用根目录并执行

$ composer require nesbot/carbon

然后在index.php添加

require './vendor/autoload.php'; // or whatever the path would be in your case