मुझे केवल जावास्क्रिप्ट में ही वर्तमान समय कैसे मिलेगा


144

मैं जावास्क्रिप्ट में वर्तमान समय कैसे प्राप्त कर सकता हूं और इसे एक टाइमपिकर में उपयोग कर सकता हूं?

मैंने कोशिश की var x = Date()और मिला:

मंगल मई 15 2012 05:45:40 GMT-0500

लेकिन मुझे केवल वर्तमान समय की आवश्यकता है, उदाहरण के लिए, 05:45

मैं इसे एक चर में कैसे निर्दिष्ट कर सकता हूं?


15
@swati क्योंकि हम चाहते हैं कि यह हमारी सभी प्रोग्रामिंग समस्याओं के लिए हमारा गोटो स्रोत हो। हो सकता है कि किसी और के पास एक बेहतर समाधान हो और इस तरह वे सभी एक स्थान पर संदर्भ के रूप में सूचीबद्ध हो सकें।
अल्फ्रेड

27
@swati - मुझे पता है कि आपने 3 साल पहले टिप्पणी लिखी थी, लेकिन अब यह पृष्ठ Google में "समय भाग जावास्क्रिप्ट प्राप्त करें" के लिए # 1 खोज परिणाम है। ध्यान रखें कि आज का प्रश्न कल के खोज परिणामों का है।
डेविड Deutsch

@DavidDeutsch यह प्रश्न पृष्ठ पर बोल्ड में शीर्षक जैसा होना चाहिए। "आज का प्रश्न कल के खोज परिणामों का है"
वालस्टीन

जवाबों:


220
var d = new Date("2011-04-20T09:30:51.01");
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

या

var d = new Date(); // for now
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

1
var d = new Date("2011-04-20 09:30:51.01"); alert(d.getHours()); // => 9 आउटपुटNaN
चिन्मय २३५

1
@ चिन्मय 235 जोड़ा गया Tतो अब यह सही सार्वभौमिक आइसो है। BTW मैं केवल undefinedIE में देखते हैं । वैसे भी फिक्स्ड।
रॉय नमिर

126

लघु और सरल:

new Date().toLocaleTimeString(); // 11:18:48 AM
//---
new Date().toLocaleDateString(); // 11/16/2015
//---
new Date().toLocaleString(); // 11/16/2015, 11:18:48 PM

4 घंटे बाद (मिलिशेक का उपयोग करें: सेकंड == 1000):

new Date(new Date().getTime() + 4*60*60*1000).toLocaleTimeString(); // 3:18:48 PM or 15:18:48

2 दिन पहले:

new Date(new Date().getTime() - 2*24*60*60*1000).toLocaleDateString() // 11/14/2015

6
जोड़ने और घटाने की गणना सहायक है!
डोवर मिलर

अगर मैं इसके बजाय 1 मिनट जोड़ना चाहता हूं तो मुझे इसे बदलने की क्या आवश्यकता होगी?
Let0code

80

जावास्क्रिप्ट का उपयोग करके वर्तमान समय को कुशलता से प्राप्त करें और सेट करें

मुझे ऐसा कोई समाधान नहीं मिला, जिसकी मुझे जरूरत हो। मैं साफ और छोटे कोड चाहता था, इसलिए मैं इसके साथ आया:

(अपने मास्टर में एक बार सेट करें। जे एस और आवश्यकता होने पर आह्वान करें।)

शुद्ध JAVASCRIPT

function timeNow(i) {
  var d = new Date(),
    h = (d.getHours()<10?'0':'') + d.getHours(),
    m = (d.getMinutes()<10?'0':'') + d.getMinutes();
  i.value = h + ':' + m;
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />


अपडेट करें

बस उपयोग करने के लिए अब पर्याप्त ब्राउज़र समर्थन है: toLocaleTimeString

के लिए एचटीएमएल 5 प्रकार timeप्रारूप में होना चाहिए hh:mm

function timeNow(i) {
  i.value = new Date().toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />

Try it on jsfiddle


3
@ gcoleman0828 मुझे पार्टी में देर हो गई। वोट के लिए धन्यवाद :)
DreamTeK

... क्या आपने 'सेट' के रूप में 'टाइपो' प्राप्त किया है? यदि नहीं, तो आपका उत्तर आपके शीर्षक से मेल नहीं खाता है और आपका शीर्षक प्रश्न से मेल नहीं खाता है।
निधि मोनिका का मुकदमा

@QPaysTaxes मेरा जवाब दोनों करता है। जावास्क्रिप्ट को समय मिलता है और HTML उपयोगकर्ता को दिखाता है कि आवश्यकता होने पर समय निर्धारित करने के लिए कोड का उपयोग कैसे किया जा सकता है। मैंने अपना उत्तर अपडेट कर दिया है। इस पर ध्यान दिलाने के लिए धन्यवाद।
ड्रीमटाइक

समय मेरे लिए 30 मिनट पीछे दिखा रहा है, अगर मैं सेट समय पर क्लिक करता हूं, तो यह सही है लेकिन सैन्य समय में। निर्धारित समय टॉगल होना चाहिए कि काम नहीं करता है
Ciasto piekarz

ब्राउज़र के लोकेल के आधार पर toLocaleTime का एक अलग प्रारूप होगा, इसके बजाय आप PM / AM के बिना एक निश्चित लोकेल का उपयोग कर सकते हैं जैसे कि html5 समय प्रारूप से मेल खाते समय पाने के लिए frnew Date().toLocaleTimeString('fr', {hour: '2-digit', minute:'2-digit'});
Tofandel

24

प्रयत्न

new Date().toLocaleTimeString().replace("/.*(\d{2}:\d{2}:\d{2}).*/", "$1");

या

new Date().toTimeString().split(" ")[0];

दूसरे रूप में यदि आप सिर्फ स्ट्रींग () का उपयोग करते हैं और 0 को 4 में बदलते हैं तो आपको प्रारूप HH: MM: SS में बस समय मिलता है।
बिगमैक्स 66



6

इसे इस्तेमाल करे:

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();

5
function getCurrentTime(){
    var date = new Date();
    var hh = date.getHours();
    var mm = date.getMinutes();

    hh = hh < 10 ? '0'+hh : hh; 
    mm = mm < 10 ? '0'+mm : mm;

    curr_time = hh+':'+mm;
    return curr_time;
}

यदि आप सभी की जरूरत सेकंड के बिना समय है और आप प्रधानमंत्री या AM भागों की जरूरत नहीं है, ऊपर कोड पूरी तरह से काम करना चाहिए।
हम्मीर


3

यह आप इसे कैसे कर सकते हैं।

const date = new Date();
const time = date.toTimeString().split(' ')[0].split(':');
console.log(time[0] + ':' + time[1])


1
यह कोई कम गूढ़ या इससे बेहतर नहीं है new Date().toTimeString().slice(0, 5)
डेन डैस्कलेस्कु

1
@DanDascalescu एक (मुख्य रूप से) पायथन देव के रूप में, मैंने आपके द्वारा प्रदान किए गए गुप्त एक-लाइनर की सराहना की है और परमीत सिंह के संक्षिप्त उत्तर को देखने के लिए पृष्ठ को काफी नीचे स्क्रॉल नहीं किया होगा (जिस पर मैं आपको संदर्भित कर रहा हूं)। धन्यवाद!
जेसन आर स्टीवंस सीएफए



0

यह सबसे छोटा रास्ता है।

var now = new Date().toLocaleTimeString();
console.log(now)

यहां स्ट्रिंग हेरफेर के माध्यम से एक तरीका भी है जिसका उल्लेख नहीं किया गया था।

var now = new Date()
console.log(now.toString().substr(16,8))

सबसे छोटा है Date().substr(16, 5)। आप की जरूरत नहीं है toString()
डेन डैस्कलेस्कु

0

चर को निर्दिष्ट करें और इसे प्रदर्शित करें।

time = new Date();

var hh = time.getHours();
var mm = time.getMinutes();
var ss = time.getSeconds() 

document.getElementById("time").value = hh + ":" + mm + ":" + ss;

क्यों मान लें कि इसे एक timeतत्व में संग्रहीत करने की आवश्यकता है ? ओपी ने एक चर में संग्रहीत करने के लिए कहा, और केवल घंटे और मिनट के लिए। let time = Date().substr(16, 5)क्या वो।
डैन डस्केल्सस्कु

0

दिनांक और समय को अलग करने के लिए सरल कार्य और समय और दिनांक HTML इनपुट के साथ संगत प्रारूप के साथ

function formatDate(date) {
  var d         = new Date(date),
      month = '' + (d.getMonth() + 1),
      day   = '' + d.getDate(),
      year  = d.getFullYear();

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return [year, month, day].join('-');
}

function formatTime(date) {
        var hours   = new Date().getHours() > 9 ? new Date().getHours() : '0' + new Date().getHours()
        var minutes = new Date().getMinutes() > 9 ? new Date().getMinutes() : '0' + new Date().getMinutes()

        return hours + ':' + minutes
}


-2

यह मेरे लिए काम करता है लेकिन यह इस बात पर निर्भर करता है कि आपके हिट होने पर आपको क्या मिलता है Date():

Date().slice(16,-12)

यह एक मौजूदा उत्तर के समान दिखता है: stackoverflow.com/a/46599746/3294944
स्टील्थेंनिजा

@stealththeninja: यह समान नहीं है। यह दूसरी और समयक्षेत्र को भी प्रभावित करता है।
Dan Dascalescu

-3
var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = hours >= 12 ? 'pm' : 'am';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0'+minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;
        console.log(strTime);
        $scope.time = strTime;

        date.setDate(date.getDate()+1);
        month = '' + (date.getMonth() + 1),
        day = '' + date.getDate(1),
        year = date.getFullYear();
        if (month.length < 2) month = '0' + month;
        if (day.length < 2) day = '0' + day;
        var tomorrow = [year, month, day].join('-');
        $scope.tomorrow = tomorrow;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.