Nhận ngày, giờ, ngày hiện tại trong laravel


116

Tôi cần lấy ngày, giờ, ngày hiện tại bằng laravel

Tôi đã cố gắng lặp lại $ldate = new DateTime('today');$ldate = new DateTime('now');

Nhưng nó đang trả về 1 luôn luôn.

Làm thế nào tôi có thể lấy ngày, giờ, ngày hiện tại ở cấp độ lớn


4
Sử dụng date(). Không cần phức tạp hóa những thứ dễ dàng, thêm chi phí không cần thiết.
Mārtiņš Briedis

1
Tôi nghĩ rằng vấn đề chính là bạn đang làm echo $now = new DateTime();trong khi thay vào đó bạn chỉ cần đặt biến mà không echo(ví dụ làm $now = new DateTime();) và sau đó khi bạn muốn echo nó bạn cần phải sử dụng các format()phương pháp ( tài liệu ):echo $now->format('Y-m-d');
alexrussell

Câu trả lời:


212

Laravel có sự Carbonphụ thuộc gắn liền với nó.

Carbon::now(), bao gồm Carbon\Carbonkhông gian tên nếu cần thiết.

Chỉnh sửa (sử dụng và tài liệu)

Giả sử tôi muốn truy xuất ngày và giờ và xuất nó dưới dạng chuỗi.

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

Điều này sẽ xuất ra ở định dạng thông thường Y-m-d H:i:s, có rất nhiều định dạng được tạo sẵn và bạn sẽ không cần phải lặp lại các chuỗi ngày giờ trong PHP với Carbon.

Tài liệu: https://github.com/briannesbitt/Carbon

Định dạng chuỗi cho Carbon: http://carbon.nesbot.com/docs/#api-formatting


4
sử dụng Carbon \ Carbon; là tuyên bố không gian tên
Kiren Siva

làm thế nào để giải nén tên ngày từ 2016/2/20 trong laravel 5 ?? vui lòng trả lời
Sabin maharjan

6
@AngularAngularAngular Sử dụngCarbon::now()->format('d-m-Y')
EThaizone Jo

1
bắt kịp tài liệu Carbon của bạn. Không ai sẽ viết mã cho bạn. Câu trả lời cung cấp những gì đã được OP hỏi.
kratos

61

Thử cái này,

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

13
@Chennai Tại sao bạn cần nó để làm theo cách "laravel"? Laravel là "php cách" :)
Mārtiņš Briedis

3
Khi bạn có quyền truy cập vào các lớp như Carbon đã được kiểm tra đầy đủ, việc sử dụng chúng luôn hữu ích. Tại sao phải phát minh lại bánh xe khi đã có một triển khai mạnh mẽ đáp ứng được những gì bạn cần và hơn thế nữa?
Everon

3
@Everon Sử dụng các chức năng cốt lõi được tích hợp sẵn không phải là phát minh lại bánh xe. Mọi người luôn muốn mọi thứ overcomplicate: S
Mārtiņš Briedis

3
Bạn chỉ cần đặt đúng múi giờ trong cấu hình chung và thế là xong, giống như cách hoạt động của carbon. Thật ngớ ngẩn khi làm những thứ "laravel way", vì nó trông lạ mắt hơn? Làm thế nào là điều này \Carbon\Carbon::now()->format('d.m.Y');tốt hơn date('d.m.Y')?
Mārtiņš Briedis

2
Cảm ơn Vì vậy, date('Y-m-d H:i:s')sẽ không bị tổn thương bởi anyway phải không?
AngularAngularAngular

51

Php có chức năng ngày tháng hoạt động rất tốt. Với laravel và blade, bạn có thể sử dụng điều này mà không cần <?phpcác thẻ echo xấu . Ví dụ: tôi sử dụng phần sau trong .blade.phptệp ...

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

... và Laravel / blade chuyển nó sang năm hiện tại. Nếu bạn muốn ngày giờ, bạn sẽ sử dụng một cái gì đó như sau:

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

16

Nếu bạn muốn sử dụng datetime class

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

11

Sau Laravel 5.5, bạn có thể sử dụng hàm now () để lấy ngày và giờ hiện tại.

Trong tệp phiến, bạn có thể viết như thế này để in ngày tháng.

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

nhập mô tả hình ảnh ở đây


điều này không thực sự trả lời câu hỏi, nhưng nó đã giúp tôi :)
lewis

6

Đây là một cách khác để làm điều này

Use \Carbon\Carbon;

$ date = Carbon :: now ();

echo $ date-> toRfc850String ();

Đầu ra sẽ như thế này

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

4

ĐỐI VỚI LARAVEL 5.x

Tôi nghĩ bạn đang tìm kiếm cái này

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

3

Bạn có thể thử điều này.

use Carbon\Carbon;

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

3

Làm thế nào về

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

sẽ cho bạn

{
  "năm": 2019,
  "tháng": 1,
  "ngày": 27,
  "dayOfWeek": 0,
  "dayOfYear": 26,
  "giờ": 10,
  "phút": 28,
  "thứ hai": 55,
  "englishDayOfWeek": "Chủ nhật",
  "vi mô": 967721,
  "dấu thời gian": 1548570535,
  "định dạng": "2019-01-27 10:28:55",
  "Múi giờ": {
    "timezone_type": 3,
    "múi giờ": "Châu Á / Dubai"
  }
}

Các đạo cụ tương tự có thể truy cập thông qua

    trở về [
             'date' => $ date-> format ('Ym-d'),
              'năm' => $ date-> năm,
              'month' => $ date-> tháng,
              'day' => $ date-> ngày,
              'giờ' => $ date-> giờ,
              'isSaturday' => $ date-> isSaturday (),
          ];



1

Bạn có một vài người giúp đỡ.

Người trợ giúp bây giờ () https://laravel.com/docs/7.x/helpers#method-now

Trình trợ giúp now () có một đối số tùy chọn, múi giờ. Vì vậy, bạn có thể sử dụng ngay bây giờ:

now();

hoặc là

now("Europe/Rome");

Theo cách tương tự, bạn có thể sử dụng trình trợ giúp ngay hôm nay () https://laravel.com/docs/7.x/helpers#method-today . Đây là "cùng một thứ" của now () nhưng không có giờ, phút, giây.

Cuối cùng, dưới mui xe, họ cũng sử dụng Carbon.


0
//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);

    }


}

0

Bạn có thể đặt múi giờ trên AppServicesProvider của mình trong Thư mục nhà cung cấp

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

và sau đó use Import Carbon\Carbon và đơn giản là use Carbon::now()// Để có thời gian hiện tại, nếu bạn cần định dạng, hãy xem tài liệu của họ để biết thêm tùy chọn dựa trên tùy chọn của bạn, hãy nhập mô tả liên kết tại đây


0

Nếu bạn muốn ngày hôm nay

sử dụng không gian tên

use Carbon\Carbon as time;

mã,

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

đầu ra, "Sunday"


-1

$ dayOfYear = today () -> dayOfYear; $ dayOfWeek = hôm nay ('Châu Âu / Luân Đôn') -> dayOfWeek;

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.