आज तक इनपुट प्रकार तिथि का डिफ़ॉल्ट मान कैसे सेट करें?


403

HTML5 इनपुट प्रकार महान हैं, ओपेरा की नई अंतर्निहित तिथि पिकर एक हवा है, और क्रोम ने स्पिन-व्हील कार्यान्वयन के साथ कम से कम नए इनपुट प्रकार का समर्थन किया है।

लेकिन क्या आज की तारीख में दिनांक फ़ील्ड का डिफ़ॉल्ट मान सेट करने का कोई तरीका है? ओपेरा के साथ, मैं तारीख बीनने वाले से 'आज' चुन सकता हूं, और जैसे ही मैं क्रोम में कदम बटन में से किसी पर क्लिक करता हूं, यह आज की तारीख से वेतन वृद्धि / घटाता है।

मैं इस छोटी सी समस्या का हल निकालने में संकोच नहीं कर रहा हूं, लेकिन यह मुझे मूर्खतापूर्ण लगता है कि दोनों ब्राउज़र वर्तमान तिथि से पूरी तरह अवगत हैं, लेकिन स्वचालित रूप से इसे (कम से कम एक प्लेसहोल्डर के रूप में) पॉप नहीं करेंगे।



यह हो सकता है उपयोगी stackoverflow.com/questions/14212527/…
मूसा


4
var date = new Date (); // डेट ऑब्जेक्ट बनाएं var min_date = date.toISOString ()। टुकड़ा (0,10); //// करंट डेट स्पेसिफिक पार्ट "2018-02-02" प्राप्त करें
Günay Gültekin

<input type = "date" value = "YYYY-MM-DD" />
बोरिस का पता लगाएं

जवाबों:


288

किसी भी HTML इनपुट फ़ील्ड की तरह, ब्राउज़र तब तक इसे खाली छोड़ देगा जब तक कि एक डिफ़ॉल्ट मान valueविशेषता के साथ निर्दिष्ट नहीं किया जाता है।

दुर्भाग्य से HTML5 valueविशेषता में 'आज' को निर्दिष्ट करने का एक तरीका प्रदान नहीं करता है (जो कि मैं देख सकता हूं), केवल RFC3339 की वैध तिथि जैसे 2011-09-29

TL; DRYYYY-MM-DD दिनांक प्रारूप का उपयोग करें या यह प्रदर्शित नहीं होगा


50
DateTime.Today.ToString ( "yyyy-MM-dd"): .net उपयोगकर्ताओं के लिए
dvdmn

3
ध्यान दें कि महीने और दिन के सामने '0' आवश्यक है: "2011-09-29" काम करता है, "2011-9-29" नहीं करता है।
निको

2
रूबी: (इसके अलावा)DateTime.now.strftime("%Y-%m-%d")
एडम ग्रांट

43
@MartinBarker नहीं होगा date('Y-m-d')क्योंकि यह अग्रणी शून्य की आवश्यकता है?
एसजीआर

15
जावास्क्रिप्ट के लिए: myDate.toLocaleDateString('en-CA')चाल करता है
Ulysse BN

218

जावास्क्रिप्ट दिनांक ऑब्जेक्ट मैन्युअल रूप से करने से बचने के लिए आवश्यक प्रारूप के लिए पर्याप्त अंतर्निहित समर्थन प्रदान करता है:

सही टाइमज़ोन समर्थन के लिए इसे जोड़ें:

Date.prototype.toDateInputValue = (function() {
    var local = new Date(this);
    local.setMinutes(this.getMinutes() - this.getTimezoneOffset());
    return local.toJSON().slice(0,10);
});


jQuery:

$(document).ready( function() {
    $('#datePicker').val(new Date().toDateInputValue());
});​


शुद्ध जेएस:

document.getElementById('datePicker').value = new Date().toDateInputValue();

1
देखो अगर तुम मोबाइल का समर्थन कर रहे हैं। एंड्रॉइड 4.0.3 (कम से कम) पर मेरे पास ऐसे मुद्दे हैं जहां पॉपअप तिथि नियंत्रण के माध्यम से चुनी गई नई तारीख को आज की तारीख में जोड़ा जाता है, बजाय इसकी जगह। उदाहरण के लिए, आप 2013-03-25 के बजाय 2013-03-252013-03-27 के साथ समाप्त कर सकते हैं, और उपयोगकर्ता को इसे बदलने का कोई तरीका नहीं है।
बेन क्लेटन

1
@Web_Designer मेला काफी। आप के साथ समायोजित करना चाहते हैं local.setMinutes(this.getMinutes() - this.getTimezoneOffset());(जैसा कि जवाब अंततः मिल जाता है) पहले, फिर।
२०:२३ को २०:२३

1
यह केवल मान गुण सेट करता है, यह विशेषता सेट नहीं करता है इसलिए यदि फ़ॉर्म रीसेट हो जाता है, तो यह बिना किसी मूल्य के डिफॉल्ट करता है। इसके अलावा, यह toISOString का उपयोग करने के लिए एक बहुत स्पष्ट होगा , जो कि वैसे भी toJSON कॉल है।
RobG

1
@apraetor दरअसल, यह दूसरा तरीका है, क्योंकि केवल उन ब्राउज़र जो डेट इनपुट्स का समर्थन करते हैं valueAsDate(जो IE, फ़ायरफ़ॉक्स, शायद सफारी, मूल रूप से सब कुछ क्रोम, ओपेरा, एज, और कुछ मोबाइल ब्राउज़र को छोड़ देता है) का समर्थन करता है। सब कुछ उस valueसंपत्ति का समर्थन करता है जो मेरा समाधान उपयोग करता है, यहां तक ​​कि जब दिनांक इनपुट गैर-सहायक ब्राउज़रों में पाठ इनपुट पर वापस आते हैं, तो दूसरा समाधान त्रुटि या असफल होगा।
brianary

2
इस उत्तर ने मेरे लिए काम किया input[type=datetime-local]और इसे बदलकर slice(0,19)HTH
jcruz

188

यह मेरे लिए काम करता है:

document.getElementById('datePicker').valueAsDate = new Date();

https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement


1
क्या यह सभी ब्राउज़रों में काम कर रहा है? और मोबाइल संस्करण भी? परीक्षण किया गया?
उस्मान यूनास

2
@UsmanY यह HTML5 कल्पना का हिस्सा है, इसलिए HTML5 इनपुट प्रकारों का समर्थन करने वाली किसी भी चीज़ का समर्थन करना चाहिए valueAsDatehtml.spec.whatwg.org/multipage/forms.html#dom-input-valueasdate
wersimmon

@harbichidian दिनांक इनपुट का प्रस्ताव valueAsDate के प्रस्ताव को थोड़ी देर पूर्व निर्धारित करता है। क्या आपके पास उस संपत्ति के लिए ब्राउज़र समर्थन का लिंक है?
१ary

3
दिनांक को यूटीसी समय में बदल दिया जाएगा। यदि आप 2018-03-27 को शाम 6 बजे -0600 पर हैं और आप सेट करते valueAsDateहैं new Date(), तो फ़ील्ड मान 2018-03-28 पर सेट हो जाएगा। देखें austinfrance.wordpress.com/2012/07/09/...
Aupajo

1
जैसा कि @Aupajo ने कहा, यदि आप UTC समय नहीं चाहते हैं, तो यह गलत तिथि निर्धारित करता है।
एडीजेक्स

81

निम्नलिखित कोड अच्छी तरह से काम करता है:

<input type="date" value="<?php echo date('Y-m-d'); ?>" />

ध्यान दें कि यह PHP पर निर्भर करता है।


64
आपका जवाब पूरी तरह से php पर निर्भर करता है।
22

1
यदि आप संपर्क फ़ॉर्म PHP पेज (उदाहरण के लिए, वर्डप्रेस पेज या शोर्ट पर) पर हैं, तो यह पूरी तरह से काम करता है। बहुत धन्यवाद ईशम!
tristanojbacon

5
आप बदल <?php echo date('Y-m-d', strtotime(date('Y/m/d'))); ?>कर अतिरेक को कम कर सकते हैं <?php echo date('Y-m-d'); ?>
मरे स्मिथ

7
यह HTML दस्तावेज़ के निर्माण की तारीख (सर्वर में, सर्वर के समय क्षेत्र में) के अनुसार तिथि निर्धारित करता है। यह वर्तमान तिथि से मेल नहीं खाता है, क्योंकि यह वास्तव में क्षेत्र को भर रहा है। क्लाइंट-साइड जावास्क्रिप्ट बेहतर है अगर आपको उन चीजों को करने की ज़रूरत है जो उपयोगकर्ता के पक्ष पर निर्भर करती हैं।
जुक्का के। कोर्पेला

1
आप लघु टैग का उपयोग भी कर सकते हैं <? = दिनांक ('Ym-d'); ?>। एक "इको" कम
sashok_bg

36

आप जावास्क्रिप्ट के माध्यम से डिफ़ॉल्ट मान को यहाँ देख सकते हैं: http://jsfiddle.net/7LXPq/

$(document).ready( function() {
    var now = new Date();
    var month = (now.getMonth() + 1);               
    var day = now.getDate();
    if (month < 10) 
        month = "0" + month;
    if (day < 10) 
        day = "0" + day;
    var today = now.getFullYear() + '-' + month + '-' + day;
    $('#datePicker').val(today);
});

मैं शायद यह देखने के लिए कुछ अतिरिक्त समय लगाऊंगा कि क्या महीने और तारीख एकल अंक हैं और अतिरिक्त शून्य के साथ उन्हें उपसर्ग करते हैं ... लेकिन यह आपको एक विचार देना चाहिए।

संपादित करें: अतिरिक्त शून्य के लिए जोड़ा गया चेक


ओपेरा में (ओपेरा 12 / विंडोज पर परीक्षण) यह काम नहीं करता है यदि आप महीने और दिन में अग्रणी शून्य नहीं डालते हैं।
रेनैटो

31

यदि आप PHP का उपयोग कर रहे हैं, तो मानक Ymd प्रारूप का पालन करें

<input type="date" value="<?php echo date("Y-m-d"); ?>">

2
आपको यह उल्लेख करना चाहिए कि यदि आप php का उपयोग कर रहे हैं तो यह उत्तर काम करता है, यह सभी के लिए नहीं है।
मोतीम एमके

24

एचटीएमएल

<input type="date" id="theDate">

जे एस

$(document).ready(function() {
    var date = new Date();

    var day = date.getDate();
    var month = date.getMonth() + 1;
    var year = date.getFullYear();

    if (month < 10) month = "0" + month;
    if (day < 10) day = "0" + day;

    var today = year + "-" + month + "-" + day;       
    $("#theDate").attr("value", today);
});

डेमो

यदि आप jQuery का उपयोग नहीं करना चाहते हैं तो आप ऐसा कुछ कर सकते हैं

एचटीएमएल

<input type="date" id="theDate">

जे एस

var date = new Date();

var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();

if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;

var today = year + "-" + month + "-" + day;       
document.getElementById("theDate").value = today;

डेमो


22

HTML5 में इस तरह से, आज की तारीख में दिनांक फ़ील्ड का डिफ़ॉल्ट मान सेट करने का कोई तरीका नहीं है? जैसा कि अन्य उत्तरों में दिखाया गया है, मूल्य को जावास्क्रिप्ट का उपयोग करके सेट किया जा सकता है, और यह आमतौर पर सबसे अच्छा तरीका है यदि आप पृष्ठ लोड होने पर उपयोगकर्ता को वर्तमान तिथि के अनुसार डिफ़ॉल्ट सेट करना चाहते हैं।

एचटीएमएल 5 तत्वों के valueAsDateलिए संपत्ति को परिभाषित करता है input type=date, और इसका उपयोग करके, आप प्रारंभिक मूल्य सेट कर सकते हैं जैसे कि किसी ऑब्जेक्ट द्वारा बनाए गए new Date()। हालांकि, उदाहरण के लिए IE 10 उस संपत्ति को नहीं जानता है। (इसमें वास्तविक समर्थन की भी कमी है input type=date, लेकिन यह एक अलग मुद्दा है।)

तो व्यवहार में आपको valueसंपत्ति सेट करने की आवश्यकता है , और यह आईएसओ 8601 अनुरूप संकेतन में होना चाहिए। आजकल यह आसानी से किया जा सकता है, क्योंकि हम toISOStringविधि का समर्थन करने के लिए वर्तमान में उपयोग किए गए ब्राउज़रों की अपेक्षा कर सकते हैं :

<input type=date id=e>
<script>
document.getElementById('e').value = new Date().toISOString().substring(0, 10);
</script>

6
या यदि आप चाहते हैं कि यह Y10K अनुरूप हो:= new Date().toISOString().split('T')[0];
ब्लेज़मॉन्गर

1
यूआईओएसट्रींग एक यूटीसी तिथि और समय लौटाता है, इसलिए उपयोगकर्ता के टाइमज़ोन के लिए सही तारीख नहीं दिखा सकता है। उदाहरण के लिए, यदि उपयोगकर्ता UTC + 0800 है, तो मध्यरात्रि से 08:00 बजे तक उन्हें कल की तारीख मिलेगी।
रॉग सेप

18

यदि आप ब्राउजर में दिनांक और समय से संबंधित कुछ भी कर रहे हैं, तो आप Moment.js का उपयोग करना चाहते हैं :

moment().format('YYYY-MM-DD');

moment()वर्तमान दिनांक और समय का प्रतिनिधित्व करने वाली वस्तु देता है। फिर आप .format()निर्दिष्ट प्रारूप के अनुसार एक स्ट्रिंग प्रतिनिधित्व प्राप्त करने के लिए इसकी विधि कहते हैं । इस मामले में, YYYY-MM-DD

पूर्ण उदाहरण:

<input id="today" type="date">
<script>
document.getElementById('today').value = moment().format('YYYY-MM-DD');
</script>

यदि आपके पास पहले से ही पल () उपलब्ध है या आपके वेब ऐप में अधिक तारीख का काम करने की योजना है, तो यह समाधान एक नो-ब्रेनर है। पल कई मुद्दों को हल करती है।
गुप्तवार्ता

10

इस मुद्दे को 2 लाइनों में हल करने के लिए क्षण का उपयोग करें। html5 दिनांक इनपुट प्रकार केवल "YYYY-MM-DD" इस प्रारूप को स्वीकार करते हैं। मैं अपनी समस्या इस तरह से हल करता हूं।

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

यह इस मुद्दे को हल करने का सबसे सरल तरीका है।


8

जावास्क्रिप्ट

document.getElementById('date-field').value = new Date().toISOString().slice(0, 10);

jQuery

$('#date-field').val(new Date().toISOString().slice(0, 10));

एक अन्य विकल्प

यदि आप दिनांक, माह और वर्ष को अनुकूलित करना चाहते हैं, तो अपनी इच्छा के अनुसार योग या उप करें to महीने के लिए फार्म ० शुरू किया गया है, इसीलिए महीने के साथ १ राशि की आवश्यकता है।

function today() {
        let d = new Date();
        let currDate = d.getDate();
        let currMonth = d.getMonth()+1;
        let currYear = d.getFullYear();
        return currYear + "-" + ((currMonth<10) ? '0'+currMonth : currMonth )+ "-" + ((currDate<10) ? '0'+currDate : currDate );
    }

आज के समारोह में शामिल हों

document.getElementById('date-field').value = today();

$('#date-field').val(today());

7

बहुत सरल, बस सर्वर साइड भाषाओं जैसे PHP, ASP, JAVA या यहां तक ​​कि आप जावास्क्रिप्ट का उपयोग कर सकते हैं।

यहाँ समाधान है

<?php
  $timezone = "Asia/Colombo";
  date_default_timezone_set($timezone);
  $today = date("Y-m-d");
?>
<html>
  <body>
    <input type="date" value="<?php echo $today; ?>">
  </body>
</html>

7
<input id="datePicker" type="date" />

$(document).ready( function() {
    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);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="datePicker" type="date" />


5

यदि आपको इनपुट डेटाइम भरने की आवश्यकता है, तो आप इसका उपयोग कर सकते हैं:

<input type="datetime-local" name="datetime" 
       value="<?php echo date('Y-m-d').'T'.date('H:i'); ?>" />

5

NodeJS (SWIG टेम्पलेट्स के साथ एक्सप्रेस) के लिए:

<input type="date" id="aDate" name="aDate" class="form-control" value="{{ Date.now() | date("Y-m-d") }}" />

5

सबसे सरल समाधान यह अनदेखी करते हैं कि यूटीसी समय का उपयोग किया जाएगा, जिसमें अत्यधिक मतदान वाले भी शामिल हैं। नीचे एक सुव्यवस्थित, ES6, मौजूदा उत्तरों के एक जोड़े के गैर- jQuery संस्करण है:

const today = (function() {
    const now = new Date();
    const month = (now.getMonth() + 1).toString().padStart(2, '0');
    const day = now.getDate().toString().padStart(2, '0');
    return `${now.getFullYear()}-${month}-${day}`;
})();
console.log(today); // as of posting this answer: 2019-01-24

आपको यह बताने के लिए इनपुट तत्व का कौन सा गुण होना चाहिए। valueया valueAsDate? हालांकि अच्छा लग रहा है।
ADJenks

4

यह वही है जो मैंने अपने कोड में किया था, मैंने अभी-अभी परीक्षण किया है और इसने ठीक काम किया है, इनपुट प्रकार = "तिथि" स्वचालित रूप से दही सेट करने के लिए समर्थन नहीं करता है, इसलिए जिस तरह से मैंने इस सीमा को पार करने के लिए उपयोग किया वह PHP कोड को सरल कोड का उपयोग कर रहा था। ।

<html>
<head></head>
    <body>
        <form ...>
            <?php
                echo "<label for='submission_date'>Data de submissão</label>";
                echo "<input type='date' name='submission_date' min='2012-01-01' value='" . date('Y-m-d') . "' required/>";
            ?>
        </form>
    </body>
</html>

आशा है ये मदद करेगा!


1
हाय और SO में आपका स्वागत है, कृपया अपने कोड का समर्थन करने के लिए अधिक जानकारी जोड़ें और सुनिश्चित करें कि प्रश्न पूछने वाला व्यक्ति PHP आधारित समाधान चाहता है।
शिव

4

दोनों शीर्ष उत्तर गलत हैं।

एक लघु-लाइनर जो शुद्ध जावास्क्रिप्ट का उपयोग करता है, स्थानीय समयक्षेत्र के लिए खाता है और इसे परिभाषित करने के लिए कोई अतिरिक्त कार्य करने की आवश्यकता नहीं है:

const element = document.getElementById('date-input');
element.valueAsNumber = Date.now()-(new Date()).getTimezoneOffset()*60000;
<input id='date-input' type='date'>

यह मिलीसेकंड (वर्तमान काल से) में वर्तमान डेटाटाइम प्राप्त करता है और मिलीसेकंड (मिनट * 60k मिनट प्रति मिलीसेकंड) में टाइमज़ोन ऑफसेट को लागू करता है।

आप तारीख का उपयोग कर सेट कर सकते हैं element.valueAsDate लेकिन फिर आपके पास Date()कंस्ट्रक्टर के लिए एक अतिरिक्त कॉल है ।


4

यह कुछ ऐसा है जिसे आपको सर्वर-साइड करने की आवश्यकता है क्योंकि प्रत्येक उपयोगकर्ता का स्थानीय समय प्रारूप भिन्न होता है, उल्लेख करने के लिए प्रत्येक ब्राउज़र अलग व्यवहार नहीं करता है।

Html Date निविष्टियाँ मान इस प्रारूप में होना चाहिए: yyyy-mm-dd अन्यथा यह कोई मूल्य नहीं दिखाएगा।

ASP CLASSIC, या VBSCRIPT:

current_year = DatePart("yyyy",date) 
current_month = DatePart("m",date) 
current_day = DatePart("d",date) 

IF current_month < 10 THEN
current_month = "0"&current_month
END IF
IF current_day < 10 THEN
current_day = "0"&current_day
END IF

get_date = current_year&"-"&current_month&"-"&current_day
Response.Write get_date

आज की तारीख का आउटपुट: 2019-02-08

फिर अपने HTML में: <input type="date" value="<% =get_date %>"

पीएचपी

बस इसका उपयोग करें: <input type="date" value="<?= date("Y-m-d"); ?>">


4

निम्नलिखित कोड का उपयोग करके, यह बहुत सरल है PHP

<input type="date" value="<?= date('Y-m-d', time()); ?>" />

दिनांक फ़ंक्शन, वर्तमान दिनांक को दिनांक में ले जाकर वापस आ जाएगा time()


2

जावास्क्रिप्ट द्वारा:

var today = new Date();

document.getElementById("theDate").value = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2);

2
new Date().getFullYear()+"-"+ ((parseInt(new Date().getMonth())+1+100)+"").substring(1)

1
कृपया अपने उत्तर के साथ विवरण जोड़ें।
बावा जी

1

यदि आप रूबी का उपयोग कर रहे हैं, तो आप इसका उपयोग आज की तारीख और समय के लिए डिफ़ॉल्ट मान सेट करने के लिए कर सकते हैं:

<input type="datetime-local" name="time" value="<%= Time.now.strftime('%Y-%m-%dT%H:%M') %>" />

1

एक सरल उपाय:

<input class="set-today" type="date">
<script type="text/javascript">
    window.onload= function() {
        document.querySelector('.set-today').value=(new Date()).toISOString().substr(0,10));
    }
</script>

1
@GeorgeJempty ऐसा नहीं होता है यदि UTC में वर्तमान समय वर्तमान दिन की तुलना में एक अलग दिन है। यह आपके स्थानीय समय क्षेत्र में नहीं, UTC में वर्तमान दिनांक लौटाएगा।
ADJenks

@adjenks हेह मैं देख रहा हूं कि यह मेरे लिए परीक्षण करने का एक सही समय था, आधी रात तक 10 मिनट
Dexygen

@adjenks I ने आखिरकार एक आधा दर्जन लाइनों को मार दिया, जो यूटीसी की गड़बड़ी से बचते हैं और कुछ इसी तरह के मौजूदा jQuery / गैर-ES6 उत्तरों की एक जोड़ी पर थोड़ा सुधार करते हैं: stackoverflow.com/a/54341296/34806
ऑक्सीजन

उत्तर में पंक्ति के अंत में एक अतिरिक्त ")" है, और "नई तिथि ()" के आसपास विलुप्त होता है। होना चाहिए: document.querySelector('.set-today').value=new Date().toISOString().substr(0,10);
किर्बी एल वालेस

0

चूंकि आज की तारीख में मूल्य निर्धारित करने की कोई डिफ़ॉल्ट विधि नहीं है, मैं कहूंगा कि यह आवेदन पर निर्भर होना चाहिए। यदि आप तिथि पिकर के लिए अपने दर्शकों के प्रदर्शन को अधिकतम करना चाहते हैं, तो डिफ़ॉल्ट मान सेट करने के लिए सर्वर-साइड स्क्रिप्ट (PHP, ASP, आदि) का उपयोग करें।

हालाँकि, अगर यह CMS के प्रशासन कंसोल के लिए है, और आप जानते हैं कि उपयोगकर्ता के पास हमेशा जेएस ऑन या आपकी साइट पर भरोसा होगा, तो आप जेएलब्रूनो के अनुसार, डिफ़ॉल्ट मान को भरने के लिए सुरक्षित रूप से जेएस का उपयोग कर सकते हैं।


0

मुझे भी यही समस्या थी और मैंने इसे सरल जेएस के साथ तय किया। इनपुट:

<input type="date" name="dateOrder" id="dateOrder"  required="required">

जे एस

<script language="javascript">
document.getElementById('dateOrder').value = "<?php echo date("Y-m-d"); ?>";
</script>

महत्वपूर्ण: जेएस स्क्रिप्ट अंतिम कोड लाइन में या इनपुट के बाद होनी चाहिए, क्योंकि यदि आप इस कोड को पहले डालते हैं, तो स्क्रिप्ट को आपका इनपुट नहीं मिलेगा।


2
यदि आप किसी भी तरह PHP का उपयोग कर रहे हैं, तो जावास्क्रिप्ट से परेशान क्यों हैं ?
ब्लेज़ेमॉन्गर

0

HTML के भीतर कोई डिफ़ॉल्ट विधि नहीं है आज इनपुट फ़ील्ड में दिनांक डालें। हालांकि, किसी भी अन्य इनपुट क्षेत्र की तरह यह एक मूल्य को स्वीकार करेगा।

आप आज की तारीख लाने के लिए PHP का उपयोग कर सकते हैं और इसे फार्म तत्व के मूल्य क्षेत्र में इनपुट कर सकते हैं।

<?php
    // Fetch the year, month and day
    $year = date(Y);
    $month = date(m);
    $day = date(d);

    // Merge them into a string accepted by the input field
    $date_string = "$year-$month-$day";

    // Send to the browser the input field with the value set with the date string
    echo "<input type='date' value='$date_string' />";
?>

मान फ़ील्ड YYYY-MM-DD प्रारूप को केवल एक चर बनाकर इनपुट के रूप में स्वीकार करता है $date_string उसी प्रारूप में जिसे इनपुट मान स्वीकार करता है और इसे वर्ष, माह और दिन के साथ भरता है और आज की तारीख और वायली से प्राप्त किया जाता है! आप अपने आप को एक preselected तारीख है!

उम्मीद है की यह मदद करेगा :)

संपादित करें:

यदि आप PHP के बजाय HTML के भीतर इनपुट फ़ील्ड को नेस्टेड करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं।

<?php
    // Fetch the year, month and day
    $year = date(Y);
    $month = date(m);
    $day = date(d);

    // Merge them into a string accepted by the input field
    $date_string = "$year-$month-$day";
?>
<html>
    <head>...</head>
    <body>
        <form>
            <input type="date" value="<?php print($date_string); ?>" />
        </form>
    </body>
</html>

मुझे पता है कि यह सवाल कुछ समय पहले (2 साल पहले) पूछा गया था, लेकिन अभी भी मुझे इंटरनेट पर एक निश्चित उत्तर खोजने में थोड़ा समय लगा है, इसलिए यह किसी भी व्यक्ति की सेवा करने के लिए जाता है, जो जब भी उत्तर की तलाश में है और यह उम्मीद कर सकता है हर किसी की बहुत मदद करता है :)

एक और संपादन:

लगभग भूल गया, कुछ चीजें अतीत में मेरे लिए एक शाही दर्द रहा है, हमेशा डिफ़ॉल्ट टाइमज़ोन सेट करने के लिए भूल रहा है जब भी PHP में एक स्क्रिप्ट बनाते हैं जो दिनांक () फ़ंक्शन का उपयोग करता है।

वाक्य-विन्यास है date_default_timezone_set(...);। प्रलेखन यहां PHP.net पर पाया जा सकता है और फ़ंक्शन में सम्मिलित करने के लिए समर्थित टाइमज़ोन की सूची यहां पाई जा सकती है । ऑस्ट्रेलिया में होने के बाद से यह हमेशा कष्टप्रद था, सब कुछ हमेशा 10 घंटे पीछे धकेल दिया जाता है, अगर मैंने इसे ठीक से सेट नहीं किया है क्योंकि यह यूटीसी + 0000 में डिफॉल्ट करता है, जहां मुझे यूटीसी + 1000 की आवश्यकता है, तो बस सतर्क रहें :)


0

धन्यवाद पीटर, अब मैं अपना कोड बदलता हूं।

<input type='date' id='d1' name='d1'>

<script type="text/javascript">
var d1 = new Date();
var y1= d1.getFullYear();
var m1 = d1.getMonth()+1;
if(m1<10)
    m1="0"+m1;
var dt1 = d1.getDate();
if(dt1<10)
dt1 = "0"+dt1;
var d2 = y1+"-"+m1+"-"+dt1;
document.getElementById('d1').value=d2;
</script>

3
कृपया, कृपया, कृपया वास्तविक अनुप्रयोगों में document.write का उपयोग न करें - इसका उपयोग करने के साथ बहुत सारी समस्याएं हैं।
पीटर हार्ट

पीटर, आप बता सकते हैं कि क्या संभावना है। तुम्हें मिला ?
निखिल sHETH

पीटर, यह भी उल्लेख करते हैं कि इनपुट प्रकार = तिथि में डिफ़ॉल्ट मूल्य के रूप में आपको वर्तमान तिथि कैसे मिलती है
निखिल sHETH

1
ऐसा नहीं है कि यह काम नहीं करता है, लेकिन सामान्य तौर पर यह दस्तावेज़ का उपयोग करने के लिए बुरा व्यवहार है। कारणों का एक असंख्य कारण है कि यह मामला क्यों है, यहां कुछ उदाहरण दिए गए हैं: stackoverflow.com/questions/802854/… अगर मुझे ग्राहक पर जावास्क्रिप्ट में ऐसा करना है, तो मैं तत्व और दस्तावेज़ पर एक आईडी का उपयोग करूंगा। getElementById तत्व को प्राप्त करने और इसे बदलने के लिए, इसी तरह इस पृष्ठ पर कुछ अन्य उत्तरों के लिए।
पीटर हार्ट

0

और एएसपी वीबीएसस्क्रिप्ट का उपयोग करने वालों के लिए

<%
'Generates date in yyyy-mm-dd format
Function GetFormattedDate(setDate)
strDate = CDate(setDate)
strDay = DatePart("d", strDate)
strMonth = DatePart("m", strDate)
strYear = DatePart("yyyy", strDate)
If strDay < 10 Then
  strDay = "0" & strDay
End If
If strMonth < 10 Then
  strMonth = "0" & strMonth
End If
GetFormattedDate = strYear & "-" & strMonth & "-" & strDay
End Function
%>

और फिर शरीर में, आपके तत्व को कुछ इस तरह देखना चाहिए

<input name="today" type="date" value="<%= GetFormattedDate(now) %>" />

चीयर्स!


0

इन सब समय के बाद भी, यह किसी की मदद कर सकता है। यह सरल जेएस समाधान है।

जे एस

  let date = new Date();
  let today = date.toISOString().substr(0, 10);
  //console.log("Today: ", today);//test
  document.getElementById("form-container").innerHTML =
    '<input type="date" name="myDate" value="' + today + '" >';//inject field

एचटीएमएल

 <form id="form-container"></form>

इसी तरह का समाधान तारीख प्रारूप को बदलने के लिए किसी भी अतिरिक्त पुस्तकालय के बिना कोणीय में काम करता है । कोणीय के लिए (सामान्य घटक कोड के कारण कोड को छोटा किया जाता है):

//so in myComponent.ts 
//Import.... @Component...etc...
date: Date = new Date();
today: String; //<- note String
//more const ...
export class MyComponent implements OnInit {
   //constructor, etc.... 
   ngOnInit() {
      this.today = this.date.toISOString().substr(0, 10);
   }
}
//so in component.html 
<input type="date" [(ngModel)]="today"  />

यह डिफ़ॉल्ट मान का उपयोग करने की आवश्यकता के लिए बहुत बोझिल है।
सुधार किया

दो स्वतंत्र उदाहरणों में से कौन सा आप इंगित करना चाहते हैं? दोनों उदाहरणों में कोड की इसकी 4 पंक्तियाँ .... पहला उदाहरण शुद्ध html + js है, ताकि कंटेनर और कॉपी पेस्ट कोड इसकी 3 पंक्तियों को कॉपी करें यदि आप टिप्पणियों की गिनती नहीं करते हैं। कोणीय उदाहरण के लिए भी यही कारण है कि मैं टिप्पणी छोड़ दिया था। निश्चित नहीं कि आपका क्या मतलब है ....
StefaDesign
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.