कहो मेरे पास एक डेटाइम ऑब्जेक्ट है उदा DateTime.now
। मैं 0 (मध्यरात्रि) तक घंटे और मिनट सेट करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?
कहो मेरे पास एक डेटाइम ऑब्जेक्ट है उदा DateTime.now
। मैं 0 (मध्यरात्रि) तक घंटे और मिनट सेट करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?
जवाबों:
ActiveSupport के लिए धन्यवाद आप उपयोग कर सकते हैं:
DateTime.now.midnight
DateTime.now.beginning_of_day
या
DateTime.now.change({ hour: 0, min: 0, sec: 0 })
# More concisely
DateTime.now.change({ hour: 0 })
now = DateTime.now
DateTime.new(now.year, now.month, now.day, 0, 0, 0, now.zone)
या
now = DateTime.now
DateTime.parse(now.strftime("%Y-%m-%dT00:00:00%z"))
DateTime.new(now.year, now.month, now.day, 0,0,0, now.zone) != now.to_date.to_datetime
कोई बात नहीं, मिल गया। एक नई DateTime बनाने की आवश्यकता है:
DateTime.new(now.year, now.month, now.day, 0, 0, 0, 0)
DateTime.new(Time.now.year, Time.now.month, Time.now.day, 0, 0, 0)
यह काम करता है।
now = DateTime.now
DateTime
। यदि आप एक ऐसे देश में रहते हैं, जहां आपको ब्रिटेन की तरह दिन के समय की बचत होती है, तो आपको कष्टप्रद मुद्दे मिलेंगे। एक स्पष्टीकरण यहाँ देखें। gist.github.com/pixeltrix/e2298822dd89d854444b
चेतावनी : DateTime.now.midnight
और DateTime.now.beginning_of_day
उसी मान को लौटाएं (जो वर्तमान दिन का शून्य काल है - मध्यरात्रि 24:00:00 तक नहीं लौटता जैसा कि आप इसके नाम से उम्मीद करेंगे)।
इसलिए मैं इसे आगे की जानकारी के रूप में किसी के लिए भी जोड़ रहा हूं जो भविष्य में आधी रात के x दिन की गणना के लिए स्वीकृत उत्तर का उपयोग कर सकता है।
उदाहरण के लिए, एक 14 दिवसीय नि: शुल्क परीक्षण जो 14 वें दिन आधी रात को समाप्त होना चाहिए:
DateTime.now.midnight + 14.days
14 वें दिन की सुबह है, जो 13.x दिन के परीक्षण के बराबर है (x दिन के शेष भाग का हिस्सा है - यदि अब दोपहर है, तो यह 13.5 दिन का परीक्षण है)।
आपको वास्तव में ऐसा करने की आवश्यकता होगी:
DateTime.now.midnight + 15.days
14 वें दिन आधी रात को पाने के लिए।
इस कारण से मैं हमेशा उपयोग करना पसंद करता हूं beginning_of_day
, क्योंकि यह 00:00:00 है। आधी रात का उपयोग करना भ्रामक / गलत समझा जा सकता है।
यदि आप इसका उपयोग करते हैं तो अक्सर डेट पार्स को बेहतर बनाने के लिए इस रत्न को स्थापित करने पर विचार करें:
https://github.com/mojombo/chronic
require 'chronic'
Chronic.parse('this 0:00')