इनपुट प्रकार की तिथि निर्धारित करें


104
<input id="datePicker" type="date" />​

मैं आज की तारीख को क्रोम में datepicker इनपुट प्रकार की तारीख में सेट करूंगा ।

$(document).ready( function() {
    var now = new Date();
    var today = now.getDate()  + '/' + (now.getMonth() + 1) + '/' + now.getFullYear();
    alert(today);
    $('#datePicker').val(today);
});​

लेकिन यह काम नहीं कर रहा है

यह संपादित करें jsFiddle - कृपया क्रोम में प्रयास करें।


2
यदि आप अपने फिडेल पर एक तारीख चुनते हैं और परिणाम फ्रेम का निरीक्षण करते हैं, तो एक कर $('#datePicker').val();देता है "2012-09-10"और वह प्रारूप जो आप तारीख निर्धारित करने के लिए उपयोग नहीं करते हैं

यह मेरे अंत में क्रोम में काम कर रहा है .. आप वास्तव में क्या मतलब है its not working?
आदित्यप्रभा

कोशिश करें: मैनुअल{ currentText: "Now" } देखें
diEcho

मुझ पर काम कर रहा है ... क्या समस्या है?
नेटोरिका

1
@ जगरपंड्या fr_FR (@ user108, ​​यह भी देखें stackoverflow.com/a/3496622/180100 )

जवाबों:


159

फिडल लिंक: http://jsfiddle.net/7LXPq/93/

इसमें दो समस्याएं:

  1. HTML में दिनांक नियंत्रण 5 वर्ष के प्रारूप में स्वीकार करता है - महीना - जिस दिन हम एसक्यूएल में उपयोग करते हैं
  2. यदि माह 9 है, तो इसे 09 नहीं 9 के रूप में सेट करने की आवश्यकता है। तो यह दिन क्षेत्र के लिए भी लागू होता है।

कृपया डेमो के लिए फिडेल लिंक का अनुसरण करें:

var now = new Date();

var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);

var today = now.getFullYear()+"-"+(month)+"-"+(day) ;

$('#datePicker').val(today);

4
2012 के बाद का उत्तर: कोड की एक पंक्ति में एक समर्थित समाधान के लिए मेरे उत्तर की जांच करें।
ओलिव यूटिलो

@ ओलिव्यूटिलो-निश्चित रूप से, लेकिन आपका जवाब कुछ समय के लिए गलत परिणाम देगा।
RobG

आपने मेरा समय बचाया, बहुत बहुत धन्यवाद
दिप सुरानी

128

document.getElementById("datePicker").valueAsDate = new Date()

कार्य करना चाहिए।


6
यह सबसे अच्छा समाधान है जो मैंने अब तक पाया है - एंड्रॉइड 4.0.3
बेन क्लेटन

6
निश्चित रूप से स्वीकृत उत्तर की तुलना में क्लीनर लगता है ... धन्यवाद
स्किपजैक

1
मैंने पाया है कि यह सफारी में किसी कारण से काम नहीं करता है :(
james_alvarez

क्रोम और एज में परीक्षण किया और ठीक काम कर पाया। जैसा @Skipjack ने कहा, बहुत बढ़िया जवाब है!
अरुण

सही समाधान जैसा दिखता है, हालांकि सफारी (13.1.2) में कॉल आपको एक अमान्य स्टेट एक्सेप्शन मिल जाता है। यकीन नहीं है कि क्यों...?
fbitterlich

23

अपडेट: मैं इसके साथ कर रहा हूं date.toISOString().substr(0, 10)। स्वीकृत उत्तर के समान परिणाम देता है और उसे अच्छा समर्थन प्राप्त होता है।


2
सफारी में काम करता है
james_alvarez

4
नोट: यह UTC समय क्षेत्र में एक तारीख देता है। इसके विपरीत शीर्ष उत्तर स्थानीय समय का उपयोग करता है।
क्वर्टी

@ क्वर्टी - वे दोनों एक ही Dateऑब्जेक्ट पर काम करते हैं (नई तिथि या Date.now के साथ बनाया गया है, जो ब्राउज़र से टाइमज़ोन विरासत में मिला है)। toISOString या getDate फ़ंक्शंस का उपयोग करना (मुझे लगता है) वही हल करेगा; इसलिए मुझे लगता है कि यह वांछित व्यवहार होना चाहिए ...
ओलिव यूटिलो

1
@ ओलिव्यूटिलो-नहीं, वे मेजबान के लिए टाइमज़ोन ऑफसेट की अवधि के लिए नहीं हैं।
RobG

जैसा कि क्वर्टी कहते हैं, यह संभावित रूप से गलत उत्तर देता है यदि आप बिना समय का उपयोग कर रहे हैं। उदाहरण के लिए Sat Sep 01 2018 00:00:00 GMT + 0100 "2018-08-31" में परिवर्तित हो गया
17


12

मेरे लिए इस समस्या को हल करने का सबसे छोटा तरीका क्षण का उपयोग करना है। js और इस समस्या को केवल 2 लाइनों में हल करना है।

var today = moment().format('YYYY-MM-DD');
$('#datePicker').val(today);

1
हाँ बिलकुल $ ('# तारीख') की तरह। वैल (पल ()) प्रारूप ('YYYY-MM-DD'));
उमर खालिद

2
मोमेंट से अपरिचित लोगों के लिए, यदि आप पल के साथ एक मनमानी जावास्क्रिप्ट दिनांक ऑब्जेक्ट फॉर्मेट करना चाहते हैं (): var yourFormattedDate= moment(yourDate).format('YYYY-MM-DD'); $('#datePicker').val(yourFormattedDate);
12


1

दिनांक इनपुट्स का उपयोग करते समय मैं आमतौर पर ये दो सहायक कार्य करता हूं:

// date is expected to be a date object (e.g., new Date())
const dateToInput = date =>
  `${date.getFullYear()
  }-${('0' + (date.getMonth() + 1)).slice(-2)
  }-${('0' + date.getDate()).slice(-2)
  }`;

// str is expected in yyyy-mm-dd format (e.g., "2017-03-14")
const inputToDate = str => new Date(str.split('-'));

फिर आप दिनांक इनपुट मान को इस प्रकार सेट कर सकते हैं:

$('#datePicker').val(dateToInput(new Date()));

और चयनित मूल्य को पुनः प्राप्त करें

const dateVal = inputToDate($('#datePicker').val())

0

डेटाटाइमपिकर को हमेशा इनपुट प्रारूप YYYY-MM-DD की आवश्यकता होती है, यह आपके मॉडल के प्रदर्शन प्रारूप या आपके स्थानीय सिस्टम डेटाटाइम के बारे में परवाह नहीं करता है। लेकिन डेटाइम पिकर का आउटपुट प्रारूप आपके वांछित (आपका स्थानीय सिस्टम) है। मेरे पोस्ट में सरल उदाहरण है ।


-5

जेकरी संस्करण

var currentdate = new Date();

$('#DatePickerInputID').val($.datepicker.formatDate('dd-M-y', currentdate));

4
$.datepickerडिफ़ॉल्ट jQuery नहीं है। आप एक प्लगइन का उपयोग कर रहे हैं और यह कहे बिना कि कौन सा, यह उत्तर बेकार है।
एमिल बर्जरॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.