2012-08-13 15 views
28

मैं रेल पर रूबी के लिए नया हूं और तिथियों में फंस गया हूं। वर्तमान समय प्राप्त करने के लिए मैंने Time.now का उपयोग किया। अब मैं वर्तमान सप्ताह और चालू माह के लिए srart और समाप्ति तिथियां जानना चाहता हूं। उदाहरण के लिए:रेल - वर्तमान सप्ताह और महीने की शुरुआत और समाप्ति तिथियां प्राप्त करें

Time.now मुझे देता है, तो -

2012-08-13 15:25:35 +0530 

तो वर्तमान सप्ताह के लिए आरंभ और समाप्ति तिथियाँ हैं:

2012-08-12 - 2012-08-18 

फिर चालू माह के लिए आरंभ और समाप्ति तिथियाँ हैं:

2012--08-01 - 2012-08-31 

मैं कोड का उपयोग कर इसे लागू कर रहा हूं:

Time.now.wday 
=> 1 

Time.now - 1.day 
=> 2012-08-12 15:31:44 +0530 

Time.now + 5.day 
=> 2012-08-19 15:32:38 +0530 

और इसी तरह .. लेकिन मुझे यह करने का एक सुविधाजनक तरीका नहीं मिला है। मुझे यकीन है कि रेल पर रूबी एक बेहतर समाधान रखती है। किसी दिनांक वर्ग बाहर ही ..

उत्तर

53
इसके बजाय Time.now

उपयोग निम्नलिखित कोड का उपयोग कर अपने प्रश्नों प्राप्त करने के

d = Date.today 

d.at_beginning_of_week 
#Mon, 13 Aug 2012 
d.at_beginning_of_week.strftime 
#"2012-08-13" 
d.at_beginning_of_week.strftime("%d") 
#"13" -> To print the date. 

हल इसी तरह आप Date Class

+0

में एक से अधिक तरीकों पा सकते हैं इस सवाल का जवाब कुछ समय के लिए किया गया है , मैं रेल 5.0.1 का उपयोग कर रहा हूं जिसमें मैं 'Time.now.at_beginning_of_ *' का भी उपयोग कर सकता हूं, बस सोचा कि मैं इसे भविष्य के पाठक के लिए एक टिप्पणी के रूप में जोड़ूंगा;) – SidOfc

2

चेक पता लगाने की सुझाव दे सकते हैं:

http://api.rubyonrails.org/classes/Date.html

तरीकों beginning_of_ * और end_of_ * वास्तव में कैसे आप के बाद कर रहे हैं देखो। सप्ताह के लिए, आप उस दिन भी पारित कर सकते हैं जब आप सप्ताह की शुरुआत पर विचार करते हैं।

संबंधित मुद्दे