समय के बिना DateTime.now रेल


91

मुझे वर्तमान समय को हड़पने के लिए DateTime.now का उपयोग करने की आवश्यकता है, और समय को "स्ट्रिप ऑफ" करें।

उदाहरण के लिए, यह दिखाता है कि मैं क्या नहीं चाहता:DateTime.now => Sat, 19 Nov 2011 18:54:13 UTC +00:00

इससे पता चलता है कि मुझे क्या चाहिए:DateTime.now.some_operation => 2011-11-06 00:00:00 UTC


10
दिनांक समय के बिना दिनांक समय :) क्या आपका मतलब दिनांक.आज है?
अज़ाहोन्गीर

जवाबों:


173

आप निम्न में से किसी एक का उपयोग कर सकते हैं:

  • DateTime.current.midnight
  • DateTime.current.beginning_of_day
  • DateTime.current.to_date

@sekmo शुरुआत_ऑफ_डे एक्टिविसपोर्ट (रेल) का हिस्सा है।
इगोर कपकोव

3
DateTime.nowज़ोन के बिना उपयोग न करने के लिए बेहतर है । यह किसी एक का उपयोग करने के लिए बेहतर है Time.zone.now, DateTime.current, DateTime.now.in_time_zone, DateTime.now.utc, DateTime.now.getlocal, DateTime.now.iso8601, DateTime.now.jisx0301, DateTime.now.rfc3339, DateTime.now.to_i, DateTime.now.to_fबजाय।
ब्रायन डिमास

धन्यवाद @BryanDimas, आपकी टिप्पणी से मदद मिलती है। क्या वीपीएन प्रभावित हो सकता है, अगर अन्य देशों के लिए आईपी का जप किया जाए?
जेनुएल गानवेड

20

क्या आप की जरूरत है समारोह strftime:

Time.now.strftime("%Y-%d-%m %H:%M:%S %Z")

यह महत्वपूर्ण समस्या पैदा कर सकता है यदि आप एक डेटाबेस में डेटा सम्मिलित कर रहे हैं जो कि %Y-%m-%d %H:%M:%Sफॉर्मेट किए गए डेटा की अपेक्षा करता है क्योंकि यह महीने और दिन के मूल्य को
उलट देगा

मेरा प्रस्ताव फंक्शन स्ट्रिपटाइम का उपयोग करना था, उपयोग किए गए प्रारूप को आपको अपने अनुसार अनुकूलित करना होगा
वीपी।


4

यदि आप खुश हैं require 'active_support/core_ext', तो आप उपयोग कर सकते हैं

DateTime.now.midnight # => Sat, 19 Nov 2011 00:00:00 -0800

1
बस माणिक-ऑन-रेल टैग देखा, तो मुझे लगता है कि आप कर रहे हैं ActiveSupport :) की आवश्यकता होती है करने के लिए खुश
जॉन एम


1

यदि आप बिना समय के आज की तारीख चाहते हैं, तो बस उपयोग करें Date.today


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