2011-11-19 19 views
70

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

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

इससे पता चलता है मैं चाहते क्या करना : DateTime.now.some_operation => 2011-11-06 00:00:00 UTC

+9

दिनांक समय है दिनांक :) आप Date.today मतलब है? – ajahongir

उत्तर

131

प्रयास करें DateTime.now.to_date या DateTime.now.beginning_of_day

+0

@sekmo start_of_day activesupport (रेल) का हिस्सा है। –

+1

ज़ोन के बिना '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' इसके बजाए। –

0

यह पता चल। यह काम करता है:

DateTime.now.in_time_zone.midnight 
15

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

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

यदि आप किसी डेटाबेस में डेटा डालने वाले हैं, तो यह महत्वपूर्ण समस्याएं पैदा कर सकता है जो '% वाई-% एम-% डी% एच:% एम:% एस 'स्वरूपित डेटा की अपेक्षा करता है क्योंकि यह महीने और दिन मूल्य – quetzaluz

4

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

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

में उलटा होगा बस रूबी ऑन-रेल टैग, तो मुझे लगता है कि आप सक्रिय समर्थन की आवश्यकता के लिए _are_ खुश हैं :) –

7

Date.today.to_time के बारे में क्या?

2

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

2

तुम बस का उपयोग कर सकते हैं: समय के बिना

Date.current 
संबंधित मुद्दे