Class 'App\Http\Controllers\IntlDateFormatter' 未找到

Class 'App\Http\Controllers\IntlDateFormatter' not found

我开发此代码以使用 php:

查看德黑兰时间和日期
$fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL,
    IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);

    echo "Date: " . $fmt->format(time()) . "\n";

此代码工作正常,但我想在 Laravel 中的控制器中的函数中使用它。

路线:

Route::get('/date', [
'as' => 'date', 'uses' => 'HomeController@date'
]);

控制器:

public function date() {
    $fmt = new IntlDateFormatter("fa_IR@calendar=persian", IntlDateFormatter::FULL,
    IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL);

    echo "Date: " . $fmt->format(time()) . "\n";
}

结果是:

Class 'App\Http\Controllers\IntlDateFormatter' not found

我知道 Laravel 中没有 IntlDateFormatter class 但我只是在这里使用 php class。我的错误是什么?

感谢您的回复,我忘了添加

use IntlDateFormatter;

所以通过添加它解决了未找到的错误。

您需要导入您的 Class 所在的命名空间。

记住 app\ 文件夹是 PSR-4 加载的,所以如果你的 class 是在一个名为 IntlDateFormatter.php 的文件中定义的,你需要把这个文件放在你的app\。然后在你的控制器中导入 class:

// in your controller 
namespace App\Http\Controllers;

use App\{your class location}\IntlDateFormatter;

这是在 Laravel 中使用自定义 类 的示例:

<?php
namespace YourProject\Services;
class IntlDateFormatter{
  public static function dateFormat(){
    /*Do your date formatting here and return desired result*/
  }
}

我假设您将此文件保存在应用程序目录中。 接下来在 config/app.php 别名数组中,添加

'IntlDateFormatter'     => Artisanian\Services\IntlDateFormatter::class,

这样您就可以轻松调用 dateFormat 函数,如下所示:

\IntlDateFormatter::dateFormat();

在您的控制器中或在您的视图中。

希望对您有所帮助。

祝你好运。