CakePHP 日期和时间


为了在 cakephp4 中处理日期和时间,可以使用 FrozenTime 类。

要使用日期和时间,请在控制器中包含该类:

use Cake\I18n\FrozenTime;

让我们使用 FrozenTime 类来处理示例并显示日期和时间。

例子


修改config/routes.php文件,如下所示:

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
    $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
        'httpOnly' => true,
    ]));
    $builder->applyMiddleware('csrf');
    // $builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
    $builder->connect('datetime',['controller'=>'Dates','action'=>'index']);
    $builder->fallbacks();
});

新建src/Controller/DatesController.php文件,并将以下代码复制到该文件中:

<?php
    namespace App\Controller;
    use App\Controller\AppController;
    use Cake\I18n\FrozenTime;
    class DatesController extends AppController{
        public function index(){
            $time = FrozenTime::now();
            $now = FrozenTime::parse('now');
            $_now = $now->i18nFormat('yyyy-MM-dd HH:mm:ss');
            $this->set('timenow', $_now);
            $now = FrozenTime::parse('now');
            $nice = $now->nice();
            $this->set('nicetime', $nice);
            $hebrewdate = $now->i18nFormat(\IntlDateFormatter::FULL, null, 'en-IR@calendar=hebrew');
            $this->set("hebrewdate",$hebrewdate);
            $japanesedate = $now->i18nFormat(\IntlDateFormatter::FULL, null, 'en-IR@calendar=japanese');
            $this->set("japanesedate",$japanesedate);
            $time = FrozenTime::now();
            $this->set("current_year",$time->year);
            $this->set("current_month",$time->month);
            $this->set("current_day",$time->day);
        }
    }
?>

新建src/Template/Dates/index.php文件,并将以下代码复制到该文件中:

<?php
    echo "The Current date and time is = ".$timenow;
    echo "<br/>";
    echo "Using nice format available = ".$nicetime;
    echo "<br/>";
    echo "Date and Time as per Hebrew Calender =" .$hebrewdate;
    echo "<br/>";
    echo "Date and Time as per Japanese Calender =" .$japanesedate;
    echo "<br/>";
    echo "Current Year = ".$current_year;
    echo "<br/>";
    echo "Current Month = ".$current_month;
    echo "<br/>";
    echo "Current Day = ".$current_day;
?>

访问http://localhost/cakephp4/datetime执行上述示例,输出如下所示:

Current Date