मैं सबसे अच्छा तरीका है निम्न उत्पादनकैसे रेल पर गहरे लाल रंग का उपयोग करते हुए एक मानव पठनीय समय सीमा उत्पन्न करने के लिए
<name> job took 30 seconds
<name> job took 1 minute and 20 seconds
<name> job took 30 minutes and 1 second
<name> job took 3 hours and 2 minutes
उत्पन्न करने के लिए खोजने की कोशिश कर रहा हूँ
मैं इस कोड शुरू कर दिया
def time_range_details
time = (self.created_at..self.updated_at).count
sync_time = case time
when 0..60 then "#{time} secs"
else "#{time/60} minunte(s) and #{time-min*60} seconds"
end
end
क्या कोई ऐसा करने का अधिक कुशल तरीका। यह कुछ सुपर सरल के लिए बहुत अनावश्यक कोड की तरह लगता है।
इसके लिए एक और इस्तेमाल होता है:
<title> was posted 20 seconds ago
<title> was posted 2 hours ago
इस के लिए कोड के लिए समान है, लेकिन इसके बजाय मैं का उपयोग Time.now:
def time_since_posted
time = (self.created_at..Time.now).count
...
...
end
बस उत्सुक, यह बुरा क्यों है? (self.created_at..self.updated_at)। स्वच्छ उत्तर के लिए धन्यवाद धन्यवाद! – csanz
@csanz: उस मामले में '.count' दो टाइमस्टैम्प के बीच हर सेकेंड की सरणी के माध्यम से पुनरावृत्त करता है और उन्हें गिना जाता है। जैसे कि आप वास्तव में 50 से 100 के बीच सभी संख्याओं की गणना करके अभिव्यक्ति '100-50' के परिणाम की गणना करेंगे। –
मैं डेटहेल्पर विधियों को प्राथमिकता देता हूं। यदि आप इसे अंग्रेजी में बदलने के लिए परेशान होने जा रहे हैं, तो आप शायद दिन और सेकंड को जोड़ना नहीं चाहते हैं। यह एक कृत्रिम परिशुद्धता है। –