2011-08-04 43 views
54

Vì vậy, trong ruby ​​bạn có thể làm Time.now + 10.hours ...Thêm phút vào đối tượng Thời gian

Không tương đương với giây và phút? Ví dụ: Time.now + 15.mins.

+0

ahh, tất nhiên ... – keruilin

+0

Nó không làm việc theo chiều ngược lại: '10 + Time.now': 'TypeError: Thời gian không thể bị ép buộc vào Fixnum' nhưng' Time.now + 10' hoạt động .. cho tất cả những người có cùng một vấn đề;) –

Trả lời

97

Ruby (ngôn ngữ lập trình) không có 10.hours, đó là ActiveSupport như một phần của Ruby on Rails (khung web). Và có, nó có cả hai phương pháp minutesseconds.

Tuy nhiên, Time#+ (phương pháp + trên trường hợp Thời gian) trả về một cá thể Thời gian mới có nghĩa là nhiều giây trong tương lai. Vì vậy, không có Ruby on Rails đường, bạn chỉ có thể làm:

irb> t = Time.now 
#=> 2011-08-03 22:35:01 -0600 

irb> t2 = t + 10    # 10 Seconds 
#=> 2011-08-03 22:35:11 -0600 

irb> t3 = t + 10*60   # 10 minutes 
#=> 2011-08-03 22:45:01 -0600 

irb> t4 = t + 10*60*60   # 10 hours 
#=> 2011-08-04 08:35:01 -0600 
+0

Tôi gần như bị điên, cảm ơn vì sự giúp đỡ –

58

Nếu bạn đang sử dụng ActiveSupport, những gì bạn đang tìm kiếm là toàn bộ .minutes.seconds.

0

Tôi nghĩ bạn đang nói về các tiện ích mở rộng do Rails thêm. Tôi nghĩ rằng bạn cần 15.minutes

Xem docs here

10

Cũng trong ActiveSupport bạn có thể làm:

10.minutes.from_now 

10.minutes.ago 
Các vấn đề liên quan