रेल में वर्तमान समय में 10 दिन कैसे जोड़े


106

मैंने कुछ ऐसा करने की कोशिश की

Time.now + 5.days

लेकिन यह काम नहीं करता है, भले ही मैं अस्पष्ट रूप से याद कर रहा हूं, और बहुत प्रभावित हो रहा हूं, जैसे कुछ करने में सक्षम होने 2.yearsआदि।

मैं रेल 3 में कैसे करूँ?


वह काम करना चाहिए। आप क्या त्रुटि प्राप्त कर रहे हैं?
कैम

यह काम हाँ है। जैसा कि आप रेल में हैं, Time.zone.now अधिक उपयुक्त लगता है
बेन

जवाबों:


284

उपयोग

Time.now + 10.days

या और भी

10.days.from_now

दोनों जरूर काम करते हैं। क्या आप वाकई रूबी में हैं और न सिर्फ रूबी?

यदि आप निश्चित रूप से रेल में हैं, तो आप इसे कहां से चलाने की कोशिश कर रहे हैं? ध्यान दें कि एक्टिव सपोर्ट को लोड करना होगा।


@ ओवल यह रेल पर काम करता है और रूबी नहीं। आप इसे पा चुके हैं लेकिन सिर्फ दूसरों की मदद करने के लिए
कैटमांडू

1
यह सिर्फ शानदार है। मुझे कुछ रूबी और रेल्स से प्यार है।
wpp करें

5
सूक्ष्म अंतर है। Time.now + 10.daysहमेशा अपने सिस्टम टाइमज़ोन को उठाता है, जबकि 10.days.from_nowयूटीसी टाइमज़ोन को उठाएगा यदि रेल विन्यास में कुछ भी सेट नहीं किया गया है।
बेबिस्टालिक्सफेंसिंगोन्रिल्स

आम तौर पर, इसके Time.zone.nowस्थान पर उपयोग करना सबसे अच्छा है Time.now
x-yuri

21

days, yearsआदि, सक्रिय समर्थन का हिस्सा हैं, इसलिए यह काम नहीं करेगा irb, लेकिन इसमें काम करना चाहिए rails console


युप - ऑन स्पॉट। वेनिला रूबी में ऐसा नहीं कर सकते।
युवल कर्म

1
Irb में भी काम करता है। यदि आपके पास मणि स्थापित है, तो require 'active_support/time'सत्र की शुरुआत में या इसके उपयोग से पहले इसे कमांड करें
darkdefender27

10

यह निश्चित रूप से काम करता है और जहां भी मुझे वर्तमान तिथि में दिन जोड़ने की आवश्यकता है, मैं इसका उपयोग करता हूं:

Date.today() + 5

10

कुछ अन्य विकल्प, केवल संदर्भ के लिए

-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)

मेरे द्वारा चुने गए सभी विकल्पों को सूचीबद्ध करें:

[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10

इसलिए, अगर हम समय-सीमा की परवाह करते हैं, तो उनके बीच क्या अंतर है:

  • [1, 4] सिस्टम टाइमज़ोन के साथ
  • [2, 3] अपने रेल एप्लिकेशन के कॉन्फ़िगर समयक्षेत्र के साथ
  • [5] परिणाम में केवल दिनांक शामिल नहीं है


2

रूबी पर यह कोशिश करो। यह भविष्य में निर्दिष्ट दिनों की एक नई तारीख / समय लौटाएगा

DateTime.now.days_since(10)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.