2011-08-29 10 views
5

में उपयोग के लिए यूटीसी की तारीख मेरे पास दिनांक प्रकार फ़ील्ड, 2011-07-20 प्रारूप प्रारूप के रूप में है, जिसे मुझे जावास्क्रिप्ट में उपयोग के लिए यूटीसी में परिवर्तित करने की आवश्यकता है। मुझे पता है कि मैं जावास्क्रिप्ट में Date.UTC का उपयोग कर सकता हूं लेकिन फिर माह एक से बंद हो जाता है और यह डैशिमीटर के रूप में डैश नहीं लेता है।रेल 3 जावास्क्रिप्ट

आप डिफ़ॉल्ट रेल दिनांक दिनांक प्रारूप को यूटीसी में कैसे परिवर्तित करते हैं?

उत्तर

13

एक नियंत्रक

@time = Time.parse('2011-07-20').utc.to_i*1000 

में एक दृश्य के

<script type="text/javascript"> 
    var date = new Date(<%= @time %>); 
    alert(date); 
</script> 
+1

मैं गड़बड़ कर रहा था क्योंकि मेरे पास पार्स को पार करने की कोई स्ट्रिंग नहीं थी। मैं बस अपना दिनांक फ़ील्ड टाइम.परसे (date_var) .utc.to_i में छोड़ रहा था और मुझे एक त्रुटि मिली। ऐसा लगता है कि हमें यूटीसी प्राप्त करने के लिए एक दिनांक चर को स्ट्रिंग में परिवर्तित करना है। शायद सबसे कुशल नहीं है लेकिन यह काम करता है। धन्यवाद... – Xaxum

1

मान लीजिए आप एक स्ट्रिंग '2011-07-20' है, निम्नलिखित की मदद करनी चाहिए

Time.parse('2011-07-20').utc 
4

बस करने के लिए एक और विकल्प जोड़ें (क्रीक के उत्तर से व्युत्पन्न):

आप समय कक्षा एक प्रारंभकर्ता में एक to_js विधि जोड़ने का बंदर-पैच कर सकते हैं:

class ::Time 
    def to_js 
    self.utc.to_i*1000 
    end 
end 

और फिर अपने जावास्क्रिप्ट में इस समारोह का उपयोग करें:

var date = new Date(<%= Time.parse('2011-07-20').to_js %>); 
console.log(date); 

आशा इस मदद करता है।

1

उपर्युक्त उत्तर मेरे लिए काम नहीं करते क्योंकि मुझे पता चला कि मुझे टाइमज़ोन के साथ मेल नहीं मिला था। जावास्क्रिप्ट में निम्नलिखित तारीख के लिए (नोट महीने js में शून्य अनुक्रमित की गई है)

var date1 = Date.UTC(2014, 0, 1) 

रूबी में समान मूल्य प्राप्त करने मैं इस किया था: -

t = Date.new(2014,01,01).to_time 
t += t.utc_offset 
@timestamp1 = (t.to_i * 1000) 

फिर

में js सत्यापित करने के लिए
var timestamp1 = <%= @timestamp1 %>; 
var timestamp2 = Date.UTC(2014, 0, 1); 
var date1 = new Date(timestamp1); 
var date2 = new Date(timestamp2); 
$("#div1").text("Ruby => " + date1.toUTCString() + ', Tz offset =>' + date1.getTimezoneOffset()); 
$("#div2").text("JS => " + date2.toUTCString() + ', Tz offset =>' + date2.getTimezoneOffset()); 
संबंधित मुद्दे