मुझे आश्चर्य है कि क्या html <input type="date"></input>
टैग में दिनांक प्रारूप सेट करना संभव है ... वर्तमान में यह yyyy-mm-dd है, जबकि मुझे dd-mm-yyyy प्रारूप में इसकी आवश्यकता है।
मुझे आश्चर्य है कि क्या html <input type="date"></input>
टैग में दिनांक प्रारूप सेट करना संभव है ... वर्तमान में यह yyyy-mm-dd है, जबकि मुझे dd-mm-yyyy प्रारूप में इसकी आवश्यकता है।
जवाबों:
तुम नहीं।
सबसे पहले, आपका प्रश्न अस्पष्ट है - क्या आपका मतलब उस प्रारूप से है जिसमें वह उपयोगकर्ता को प्रदर्शित होता है, या वह प्रारूप जिसमें वह वेब सर्वर पर प्रसारित होता है?
यदि आपका मतलब उस प्रारूप से है जिसमें इसे उपयोगकर्ता को प्रदर्शित किया जाता है, तो यह एंड-यूज़र इंटरफ़ेस के नीचे है, HTML में आपके द्वारा निर्दिष्ट कुछ भी नहीं। आमतौर पर, मैं उम्मीद करूंगा कि यह उस तारीख प्रारूप पर आधारित होगा जो इसे ऑपरेटिंग सिस्टम लोकेल सेटिंग्स में सेट किया गया है। यह अपने स्वयं के पसंदीदा प्रारूप के साथ इसे ओवरराइड करने की कोशिश करने का कोई मतलब नहीं है, क्योंकि यह जिस प्रारूप में प्रदर्शित होता है (आम तौर पर बोलता है) उपयोगकर्ता के लोकेल के लिए सही एक है और उस प्रारूप को जिसमें उपयोगकर्ता का उपयोग तारीखों को लिखने / समझने के लिए किया जाता है।
यदि आपका मतलब उस प्रारूप से है जिसमें यह सर्वर पर प्रसारित होता है, तो आप गलत समस्या को ठीक करने का प्रयास कर रहे हैं। आपको जो करने की आवश्यकता है वह yyyy-mm-dd प्रारूप में दिनांक स्वीकार करने के लिए सर्वर-साइड कोड प्रोग्राम है।
input[type=password]
कहा गया है कि "उपयोगकर्ता एजेंट को मूल्य अस्पष्ट करना चाहिए ताकि उपयोगकर्ता के अलावा अन्य लोग उसे देख न सकें", जो कि यह कहते हुए उतनी ही प्रस्तुति है कि उपयोगकर्ता एजेंट को एक निश्चित तरीके से तारीख पेश करनी चाहिए।
मुझे स्टैकओवरफ़्लो पर समान प्रश्न या संबंधित प्रश्न मिला
क्या इनपुट प्रकार = "दिनांक" प्रारूप को बदलने का कोई तरीका है?
मुझे एक सरल समाधान मिला, आप पार्टिकुलेट फॉर्मेट नहीं दे सकते लेकिन आप इस तरह से कस्टमाइज़ कर सकते हैं।
HTML कोड:
<body>
<input type="date" id="dt" onchange="mydate1();" hidden/>
<input type="text" id="ndt" onclick="mydate();" hidden />
<input type="button" Value="Date" onclick="mydate();" />
</body>
सीएसएस कोड:
#dt{text-indent: -500px;height:25px; width:200px;}
जावास्क्रिप्ट कोड:
function mydate()
{
//alert("");
document.getElementById("dt").hidden=false;
document.getElementById("ndt").hidden=true;
}
function mydate1()
{
d=new Date(document.getElementById("dt").value);
dt=d.getDate();
mn=d.getMonth();
mn++;
yy=d.getFullYear();
document.getElementById("ndt").value=dt+"/"+mn+"/"+yy
document.getElementById("ndt").hidden=false;
document.getElementById("dt").hidden=true;
}
आउटपुट:
यदि आप jQuery का उपयोग कर रहे हैं, तो यहाँ एक अच्छा सरल तरीका है
$("#dateField").val(new Date().toISOString().substring(0, 10));
या पुराना पारंपरिक तरीका है:
document.getElementById("dateField").value = new Date().toISOString().substring(0, 10)
अन्य विशेषताओं के साथ HTML5 दिनांक नियंत्रण का उपयोग क्यों न करें, यह उन ब्राउज़रों पर ठीक काम करने की अनुमति देता है जो दिनांक प्रकार का समर्थन करते हैं और अभी भी फ़ायरफ़ॉक्स जैसे अन्य ब्राउज़रों पर काम करते हैं जो तिथि प्रकार का समर्थन करना अभी बाकी है
<input type="date" name="input1" placeholder="YYYY-MM-DD" required pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" title="Enter a date in this formart YYYY-MM-DD"/>
मुझे लगता है कि, HTML में DD-MM-YYYY प्रारूप के लिए कोई सिंटैक्स नहीं है। इस पृष्ठ को देखें http://www.java2s.com/Code/SQLServer/Date-Timezone/FormatdateMmmddyyyhhmmdp.htm । कुछ हद तक यह आपकी मदद करेगा। अन्य उपयोग जावास्क्रिप्ट तिथि पिकर।
मुझे यह निश्चित रूप से नहीं पता है, लेकिन मुझे लगता है कि यह उपयोगकर्ता की तिथि / समय सेटिंग के आधार पर ब्राउज़र द्वारा नियंत्रित किया जाना चाहिए। उस प्रारूप में दिनांक प्रदर्शित करने के लिए अपना कंप्यूटर सेट करने का प्रयास करें।
$('input[type="date"]').change(function(){
alert(this.value.split("-").reverse().join("-"));
});
मैंने बहुत खोजबीन की और मुझे नहीं लगता कि कोई इस प्रारूप को लागू कर सकता है <input type="date">
। ब्राउज़र स्थानीय प्रारूप का चयन करता है, और उपयोगकर्ता सेटिंग्स के आधार पर, यदि उपयोगकर्ता की भाषा अंग्रेजी में है, तो तारीख अंग्रेजी प्रारूप (मिमी / डीडी / yyyy) में प्रदर्शित की जाएगी।
मेरी राय में, प्रदर्शन को नियंत्रित करने के लिए एक प्लगइन का उपयोग करना सबसे अच्छा समाधान है।
जेकरी डेटपिकर एक अच्छा विकल्प लगता है क्योंकि आप स्थानीयकरण , तिथि प्रारूप को लागू कर सकते हैं ...
मैंने ऊपर जो कुछ भी पढ़ा है, उससे थोड़ा अलग उत्तर के साथ आया हूं।
मेरा समाधान जावास्क्रिप्ट का एक छोटा सा और एक html इनपुट का उपयोग करता है।
एक स्ट्रिंग द्वारा इनपुट परिणाम द्वारा स्वीकार की गई तारीख को 'yyyy-mm-dd' के रूप में स्वरूपित किया जाता है। हम इसे विभाजित कर सकते हैं और इसे एक नई तिथि () के रूप में ठीक से रख सकते हैं।
यहाँ मूल HTML है:
<form id="userForm">
<input type="text" placeholder="1, 2, 3, 4, 5, 6" id="userNumbers" />
<input type="date" id="userDate" />
<input type="submit" value="Track" />
</form>
यहाँ बुनियादी जेएस है:
let userDate = document.getElementById('userDate').value.split('-'),
parsedDate = new Date((`${userDate[1]}-${userDate[2]}-${userDate[0]}`));
आप किसी भी तरह से तारीख को प्रारूपित कर सकते हैं। आप एक नई तारीख () बना सकते हैं और वहां से सारी जानकारी ले सकते हैं ... या अपनी स्ट्रिंग बनाने के लिए 'userDate []' का उपयोग करें।
ध्यान रखें, कुछ तरीके जो एक तारीख को 'नई तिथि ()' में दर्ज किए जाते हैं, एक अप्रत्याशित परिणाम उत्पन्न करते हैं। (यानी - एक दिन पीछे)
<html>
<body>
<p id="result">result</p>Enter some text: <input type="date" name="txt" id="value" onchange="myFunction(value)">
<button onclick="f()">submit</button>
<script>
var a;
function myFunction(val){
a = val.split("-").reverse().join("-");
document.getElementById("value").type = "text";
document.getElementById("value").value = a;
}
function f(){
document.getElementById("result").innerHTML = a;
var z = a.split("-").reverse().join("-");
document.getElementById("value").type = "date";
document.getElementById("value").value = z;
}
</script>
</body>
</html>
संक्षिप्त प्रत्यक्ष उत्तर बॉक्स से बाहर है या नहीं, लेकिन मैं एक पाठ बॉक्स और शुद्ध जेएस कोड का उपयोग करने के लिए एक तारीख तिथि इनपुट का अनुकरण करने और आपके इच्छित किसी भी प्रारूप को करने के लिए एक विधि के साथ आया हूं, यहां कोड है
<html>
<body>
date :
<span style="position: relative;display: inline-block;border: 1px solid #a9a9a9;height: 24px;width: 500px">
<input type="date" class="xDateContainer" onchange="setCorrect(this,'xTime');" style="position: absolute; opacity: 0.0;height: 100%;width: 100%;"><input type="text" id="xTime" name="xTime" value="dd / mm / yyyy" style="border: none;height: 90%;" tabindex="-1"><span style="display: inline-block;width: 20px;z-index: 2;float: right;padding-top: 3px;" tabindex="-1">▼</span>
</span>
<script language="javascript">
var matchEnterdDate=0;
//function to set back date opacity for non supported browsers
window.onload =function(){
var input = document.createElement('input');
input.setAttribute('type','date');
input.setAttribute('value', 'some text');
if(input.value === "some text"){
allDates = document.getElementsByClassName("xDateContainer");
matchEnterdDate=1;
for (var i = 0; i < allDates.length; i++) {
allDates[i].style.opacity = "1";
}
}
}
//function to convert enterd date to any format
function setCorrect(xObj,xTraget){
var date = new Date(xObj.value);
var month = date.getMonth();
var day = date.getDate();
var year = date.getFullYear();
if(month!='NaN'){
document.getElementById(xTraget).value=day+" / "+month+" / "+year;
}else{
if(matchEnterdDate==1){document.getElementById(xTraget).value=xObj.value;}
}
}
</script>
</body>
</html>
1- कृपया ध्यान दें कि यह विधि केवल ब्राउज़र के लिए काम करती है जो दिनांक प्रकार का समर्थन करती है।
2- जेएस कोड में पहला कार्य ब्राउजर के लिए होता है जो तिथि प्रकार का समर्थन नहीं करता है और लुक को सामान्य टेक्स्ट इनपुट पर सेट करता है।
3- अगर आप इस कोड का उपयोग अपने पेज में कई तारीखों के इनपुट के लिए करते हैं, तो कृपया फंक्शन कॉल में टेक्स्ट इनपुट की आईडी "xTime" को बदल दें और इनपुट स्वयं किसी और चीज में और निश्चित रूप से आपके द्वारा इच्छित इनपुट के नाम का उपयोग करें। फॉर्म सबमिट करें।
4-दूसरे फ़ंक्शन पर आप दिन के बजाय किसी भी प्रारूप का उपयोग कर सकते हैं + "/" + महीना + "/" + वर्ष उदाहरण के लिए वर्ष + "/" + महीना + "/" + दिन और पाठ इनपुट में प्लेसहोल्डर या मान का उपयोग करें पेज लोड होने पर उपयोगकर्ता के लिए yyyy / mm / dd।
Mm-dd-yyyy में स्वरूपण के लिए
आ = date.split ( "-")
तिथि = आ [1] + '-' + आ [2] + '-' + आ [0]
कोई निर्भरता के साथ स्वच्छ कार्यान्वयन। https://jsfiddle.net/h3hqydxa/1/
<style type="text/css">
.dateField {
width: 150px;
height: 32px;
border: none;
position: absolute;
top: 32px;
left: 32px;
opacity: 0.5;
font-size: 12px;
font-weight: 300;
font-family: Arial;
opacity: 0;
}
.fakeDateField {
width: 100px; /* less, so we don't intercept click on browser chrome for date picker. could also change this at runtime */
height: 32px; /* same as above */
border: none;
position: absolute; /* position overtop the date field */
top: 32px;
left: 32px;
display: visible;
font-size: 12px; /* same as above */
font-weight: 300; /* same as above */
font-family: Arial; /* same as above */
line-height: 32px; /* for vertical centering */
}
</style>
<input class="dateField" id="dateField" type="date"></input>
<div id="fakeDateField" class="fakeDateField"><em>(initial value)</em></div>
<script>
var dateField = document.getElementById("dateField");
var fakeDateField = document.getElementById("fakeDateField");
fakeDateField.addEventListener("click", function() {
document.getElementById("dateField").focus();
}, false);
dateField.addEventListener("focus", function() {
fakeDateField.style.opacity = 0;
dateField.style.opacity = 1;
});
dateField.addEventListener("blur", function() {
fakeDateField.style.opacity = 1;
dateField.style.opacity = 0;
});
dateField.addEventListener("change", function() {
// this method could be replaced by momentJS stuff
if (dateField.value.length < 1) {
return;
}
var date = new Date(dateField.value);
var day = date.getUTCDate();
var month = date.getUTCMonth() + 1; //zero-based month values
fakeDateField.innerHTML = (month < 10 ? "0" : "") + month + " / " + day;
});
</script>
यहाँ समाधान है:
<input type="text" id="end_dt"/>
$(document).ready(function () {
$("#end_dt").datepicker({ dateFormat: "MM/dd/yyyy" });
});
उम्मीद है कि यह इस मुद्दे को हल करेगा :)