Time là một class trong Ruby, nó sẽ giúp chỉnh sửa format, trích xuất thông tin một cách hiệu quả theo ý của bạn.
Sau bài đọc này, bạn có thể tìm hiểu mọi thứ bạn cần để trở thành Doraemon quản lý cỗ máy thời gian :v Just kidding ?
- Topic hôm nay chúng ta có gì nào
- Làm thế nào để convert một chuỗi tring thành một đối tượng thời gian(Time object)?
- Làm thế nào để break down thời gian từ các thành phần có sẵn(day, hour, milliseconds...v.v)?
- Làm thế nào để sử dụng
Date
,Datetime
&Time
Class trong Ruby? - Làm thế nào để format time theo bất cứ cách nào bạn muốn?
Okayyy, Let's get started ?
Time class trong Ruby
Bạn có thể sử dụng Time
class trong Ruby để đại diện cho time & date
Date thì có 3 thành phần phải không nào:
- day
- month
- year
Và time
- hours
- minutes
- seconds
Thông tin này được lưu trữ bởi Time class dưới dạng số giây kể từ Kỷ nguyên, hay còn được gọi là Unix time.
Bạn cố thể tạo một đối tượng Time bằng những cách sau:
- Bạn có thể lấy một đối tượng đại diện cho thời gian hiện tại bằng cách sử dụng
Time.now
. Lưu ý thời gian này sẽ tương ứng với zone hiện tại theo server của bạn. Ví dụ như server của mình đang bên Nhật thì Time.now sẽ tương ứng với múi giờ +9 của Nhật.
- Bạn có thể tạo một đối tượng Time sử dụng dấu thời gian Unix và phương thức
at
- Bạn có thể cung cấp ngày bắt đầu làm tham số bằng cách khởi tạo đối tượng
[Time.new](http://time.new)
theo (format: year/month/day)
Ví tờ dụ sẽ như thế này
Ngoài ra bạn có thể lấy thông tin của ngày, tháng, giờ bằng cách sử dụng day,month,hour
Bạn có thể kiểm tra "Hôm nay có phải là chủ nhật không?" bằng cách sử dụng phương thức chủ nhật?
Mình đùa đấy, đừng làm điều dại dột thế nhé :v
Bạn có thể sử dụng hàm như .monday?, .sunday?, .friday?..v.v.
⇒ Sẽ trả về giá trị true, false tương ứng.
Time Zones
Một đối tượng Time sẽ có một múi giờ tương ứng với nó
Bạn có thể kiểm tra múi giờ hiện tại cho đối tượng Time của mình bằng cách sử dụng hàm zone
Bạn có thể xem các múi giờ viết tại tại link này time zone abbreviation
Ví dụ ảnh trên của mình đang là JST
là viết tắt của từ Japan Standard Time
và có múi giờ +09 theo chuẩn quốc tế.
Ruby Time Formatting
Ruby sẽ format đối tượng Time theo một cách mặc định
Nếu bạn không muốn default như thế? Bạn muốn hiển thị giờ theo tiếng Việt, Nhật, Ả rập thì phải làm sao??
Phương thức strftime
sẽ là thứ giúp bạn giúp bạn thay đổi format hầu hết các định dạng bạn cần.
Nó làm việc bằng cách truyền vào một chuỗi string với các mã định dạng, các mã định dạng này sẽ được thay thế bằng một giá trị.
Bạn có thể thấy, phương thức này rất linh hoạt phải không nào. Bạn có thể nhận được thời gian không có ngày hoặc ngày được định dạng độc đáo với năm, ngày và tên của tháng hiện tại.
Bạn có thể tìm kiếm các format có sẵn dưới đây:
Phần 1 của mình tạm thời kết thúc tại đây. Phần 2 mình sẽ giới thiệu cho các bạn về class Date trong Ruby, thêm và trừ thời gian, thay đổi format Date & Time, ActiveSupport – Time & Date Methods...v.v
Cùng đón chờ nhé ?, đừng quên comment phía dưới nếu có thắc mắc hoặc góp ý cho mình. Mình rất mong chờ những góp ý của các bạn để có thể cải thiện ở những bài viết sau ❤️