【问题标题】:Getting current date, time, and day in Laravel在 Laravel 中获取当前日期、时间和日期
【发布时间】:2015-03-22 10:47:01
【问题描述】:

我需要使用 Laravel 获取当前日期、时间和日期。

我尝试回显$ldate = new DateTime('today');$ldate = new DateTime('now');

但它总是返回 1。

如何获取当前日期、时间和日期?

【问题讨论】:

  • 我认为主要问题是你正在做echo $now = new DateTime();,而你应该只设置没有echo的变量(即做$now = new DateTime();),然后当你想回显它您需要使用format() 方法(docs):echo $now->format('Y-m-d');

标签: php date laravel


【解决方案1】:

Laravel 附加了 Carbon 依赖项。

Carbon::now(),如有必要,包括 Carbon\Carbon 命名空间。

编辑(用法和文档)

假设我想检索日期和时间并将其输出为字符串。

$mytime = Carbon\Carbon::now();
echo $mytime->toDateTimeString();

这将以Y-m-d H:i:s 的通常格式输出,有许多预先创建的格式,您不太可能需要再次使用 Carbon 处理 PHP 日期时间字符串。

文档: https://github.com/briannesbitt/Carbon

Carbon 的字符串格式: http://carbon.nesbot.com/docs/#api-formatting

【讨论】:

  • 使用碳\碳;是命名空间声明
  • 如何在 laravel 5 中从 2016/2/20 中提取日期名称?请回复
  • @AngularAngularAngular 使用Carbon::now()->format('d-m-Y')
  • 了解您的 Carbon 文档。没有人会为你编写代码。答案提供了 OP 的要求。
【解决方案2】:

试试这个,

$ldate = date('Y-m-d H:i:s');

【讨论】:

  • @Chennai 为什么需要它来执行“laravel”方式? Laravel 是“php 方式”:)
  • 当您可以访问像 Carbon 这样经过全面测试的类时,使用它们总是有用的。既然已经有一个强大的实现可以满足您的需求,为什么还要重新发明轮子?
  • @Everon 使用内置核心功能并不是重新发明轮子。人们总是想把事情复杂化:S
  • 您只需在全局配置中设置正确的时区即可,与 carbon 的工作方式相同。用“laravel 方式”做事很傻,因为它看起来更花哨?这个\Carbon\Carbon::now()->format('d.m.Y');date('d.m.Y') 好多少?
  • 谢谢 所以,date('Y-m-d H:i:s') 不会受到伤害吧?
【解决方案3】:

Php 有一个运行良好的日期函数。使用 laravel 和刀片,您可以使用它而无需丑陋的 <?php echo 标签。例如,我在.blade.php 文件中使用以下内容...

Copyright © {{ date('Y') }}

... Laravel/blade 将其转换为当前年份。如果你想要日期时间和日期,你会使用这样的东西:

{{ date('Y-m-d H:i:s') }}

【讨论】:

    【解决方案4】:

    如果你想使用datetime 类:

    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
    

    documentation 供参考。

    【讨论】:

      【解决方案5】:

      从 Laravel 5.5 开始,您可以使用 now() 函数来获取当前日期和时间。

      blade文件中可以这样写来打印日期。

      {{  now()->toDateTimeString('Y-m-d') }}
      

      更多信息请查看doc

      【讨论】:

        【解决方案6】:

        这是另一种方法

        Use \Carbon\Carbon;
        

        $date = Carbon::now();

        echo $date->toRfc850String();

        输出会是这样的

        Saturday, 11-May-19 06:28:04 UTC
        

        【讨论】:

          【解决方案7】:

          怎么样

              $date = Carbon::now();
              return $date->toArray();
          

          会给你

          { “年”:2019, “月”:1, “天”:27, "dayOfWeek": 0, "dayOfYear": 26, “小时”:10, “分钟”:28, “第二”:55, "englishDayOfWeek": "星期日", “微”:967721, “时间戳”:1548570535, "格式化": "2019-01-27 10:28:55", “时区”: { “时区类型”:3, “时区”:“亚洲/迪拜” } }

          同样的道具可以通过

          返回 [ '日期' => $date->格式('Y-m-d'), '年' => $日期->年, '月' => $日期->月, '天' => $日期->天, '小时' => $日期->小时, 'isSaturday' => $date->isSaturday(), ];

          【讨论】:

            【解决方案8】:

            适用于 LARAVEL 5.x

            我想你在找这个

            $errorLog->timestamps = false;
            $errorLog->created_at = date("Y-m-d H:i:s");
            

            【讨论】:

              【解决方案9】:

              你可以试试这个。

              use Carbon\Carbon;
              
              $date = Carbon::now()->toDateTimeString();
              

              【讨论】:

                【解决方案10】:

                我更喜欢使用内置的 PHP 函数。如果要获取时间戳格式,例如“2021-03-31”,可以这样编写代码

                $date = date('Y-m-d', time());
                

                暂时可以这样写

                $date = date('H:i:s', time());
                

                有一天你可以这样写

                $date = date('l', time()); // lowercase of L
                

                function time() 会给你当前的 UNIX 时间,你可以把它转换成你需要的任何格式。

                所以,您不再需要任何第三方软件包了 :)

                您可以在此Wikipedia page 中阅读有关 UNIX 时间的更多信息,并在此webiste 中进行转换

                最后,关于格式化,您可以访问w3schools 页面。

                【讨论】:

                  【解决方案11】:

                  您可以按照这些规则获取任何日期时间格式。

                  $dt = Carbon::now();
                  
                  var_dump($dt->toDateTimeString() == $dt);          // bool(true) => uses     __toString()
                  echo $dt->toDateString();                          // 1975-12-25
                  echo $dt->toFormattedDateString();                 // Dec 25, 1975
                  echo $dt->toTimeString();                          // 14:15:16
                  echo $dt->toDateTimeString();                      // 1975-12-25 14:15:16
                  echo $dt->toDayDateTimeString();                   // Thu, Dec 25, 1975 2:15 PM
                  

                  【讨论】:

                    【解决方案12】:

                    你有几个助手。

                    助手 now() https://laravel.com/docs/7.x/helpers#method-now

                    帮助器 now() 有一个可选参数,即时区。所以你现在可以使用了:

                    now();
                    

                    now("Europe/Rome");
                    

                    以同样的方式你可以使用今天的助手()https://laravel.com/docs/7.x/helpers#method-today。这与 now() 的“相同”,但没有小时、分钟、秒。

                    最后,他们也使用了 Carbon。

                    【讨论】:

                      【解决方案13】:

                      很简单:

                      Carbon::now()->toDateString()
                      

                      这将为您提供格式完美的日期字符串,例如 2020-10-29。

                      在 Laravel 5.5 及更高版本中,您可以使用 now() 作为全局助手而不是 Carbon::now(),如下所示:

                      now()->toDateString()
                      

                      【讨论】:

                        【解决方案14】:
                        use DateTime;
                        
                        $now = new DateTime();
                        

                        【讨论】:

                          【解决方案15】:

                          Laravel 刀片视图:

                          {{\Carbon\Carbon::now()->format('d-m-Y')}}

                          有时区:

                          {{\Carbon\Carbon::now("Asia/Tokyo")->format('d-m-Y')}}

                          格式可用列表: https://www.php.net/manual/en/datetime.format.php

                          时区可用列表: https://www.php.net/manual/en/timezones.php

                          【讨论】:

                            【解决方案16】:
                            //vanilla php
                            Class Date {
                                public static function date_added($time){
                                     date_default_timezone_set('Africa/Lagos');//or choose your location
                                    return date('l F Y g:i:s ',$time);
                            
                                }
                            
                            
                            }
                            

                            【讨论】:

                              【解决方案17】:

                              您可以在 Provider 文件夹中为您的 AppServicesProvider 设置时区

                              public function boot()
                              {
                                  Schema::defaultStringLength(191);
                                  date_default_timezone_set('Africa/Lagos');
                              }
                              

                              然后use Import Carbon\Carbon 只需use Carbon::now() //获取当前时间,如果您需要对其进行格式化,请查看他们的文档以根据您的喜好查看更多选项enter link description here

                              【讨论】:

                                【解决方案18】:

                                如果你想要今天的日期

                                使用命名空间

                                use Carbon\Carbon as time;
                                

                                代码,

                                 $mytime=time::now();
                                 $date=$mytime->toRfc850String();
                                 $today= substr($date, 0, strrpos($date, ","));
                                 dd($today)
                                

                                输出, "Sunday"

                                【讨论】:

                                  【解决方案19】:

                                  如果您需要直接在视图的输入值中输入日期,这可以帮助您:(myview .blade.php)

                                  <input type="date" name="Date" value="{{date('Y-m-d', time())}}">
                                  

                                  【讨论】:

                                    【解决方案20】:

                                    我在 laravel 8 上使用 now() 创建用户

                                    User::create([
                                       'name'=>'admin',
                                       'email'=>'admin@email.test',
                                       'email_verified_at'=>now(),
                                       'password'=>bcrypt('123456'),
                                    ]);
                                    

                                    【讨论】:

                                      【解决方案21】:

                                      你可以使用today()function

                                      $today = today('Europe/London');
                                      $dayOfYear = $today->dayOfYear;
                                      $dayOfWeek = $today->dayOfWeek;
                                      

                                      【讨论】:

                                        猜你喜欢
                                        • 2012-12-04
                                        • 2017-11-28
                                        • 2015-01-18
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 2012-04-29
                                        • 2015-11-12
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多