javascript - समझ - प्रपत्र एचटीएमएल




मैं जावास्क्रिप्ट में वर्तमान दिनांक कैसे प्राप्त करूं? (20)

अपडेट किया! , नीचे स्क्रॉल करें

यदि आप अंतिम उपयोगकर्ता के लिए कुछ आसान सुंदर चाहते हैं ... Also, fixed a small suffix issue in the first version below. Now properly returns suffix. Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

var objToday = new Date(),
	weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
	dayOfWeek = weekday[objToday.getDay()],
	domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
	dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
	months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
	curMonth = months[objToday.getMonth()],
	curYear = objToday.getFullYear(),
	curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
	curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
	curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
	curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;

document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>

उबर अपडेट बहुत विलंब के बाद, मैंने आखिरकार GitHubbed और इसे अंतिम समाधान के साथ अपडेट किया है जिसे मैं अपने लिए उपयोग कर रहा हूं। इसे मीठा बनाने के लिए कुछ आखिरी मिनट के संपादन भी हैं! यदि आप पुराने जेएसफ़िल्ड की तलाश में हैं, तो कृपया इसे देखें

यह अद्यतन 2 स्वादों में आता है, अभी भी अपेक्षाकृत छोटा है, हालांकि मेरे ऊपर, मूल उत्तर जितना छोटा नहीं है। यदि आप बहुत छोटे चाहते हैं, तो उसके साथ जाओ।
यह भी ध्यान दें: यह अभी भी क्षण.जेएस से कम फूला हुआ है। जबकि moment.js अच्छा है, आईएमओ, इसमें कई धर्मनिरपेक्ष विधियां हैं, जिन्हें सीखने की आवश्यकता होती है जैसे कि यह एक भाषा थी। मेरा यहां PHP:date के समान सामान्य प्रारूप का उपयोग करता है PHP:date

त्वरित सम्पक

स्वाद 1 new Date().format(String) मेरा व्यक्तिगत एफएवी। मुझे वर्जित पता है, लेकिन डेट ऑब्जेक्ट पर बहुत अच्छा काम करता है। बस डेट ऑब्जेक्ट के पास आपके किसी भी अन्य मोड से अवगत रहें।

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

स्वाद 2 dateFormat(Date, String) अधिक पारंपरिक सभी में एक विधि। पिछले की सभी क्षमता है, लेकिन दिनांक param के साथ विधि के माध्यम से कहा जाता है।

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

बोनस स्वाद (jQuery की आवश्यकता है) $.date(Date, String) इसमें केवल एक साधारण format विकल्प से कहीं अधिक है। यह बेस डेट ऑब्जेक्ट को बढ़ाता है और इसमें addDays जैसी विधियां शामिल हैं। अधिक जानकारी के लिए, कृपया गिट देखें।

इस मॉड में, प्रारूप वर्ण PHP:date से प्रेरित हैं। पूरी सूची के लिए, कृपया मेरी README देखें

इस मॉड में पूर्व-निर्मित स्वरूपों की एक लंबी सूची भी है। प्रीमेड प्रारूप का उपयोग करने के लिए, बस इसका मुख्य नाम दर्ज करें। dateFormat(new Date(), 'pretty-a');

  • 'यौगिक'
    • 'commonLogFormat' == 'डी / एम / वाई: जी: मैं: एस'
    • 'exif' == 'वाई: एम: डी जी: मैं: एस'
    • 'isoYearWeek' == 'वाई \\ डब्ल्यूडब्ल्यू'
    • 'isoYearWeek2' == 'वाई - \\ डब्ल्यूडब्ल्यू'
    • 'isoYearWeekDay' == 'वाई \\ डब्ल्यूडब्ल्यूजे'
    • 'isoYearWeekDay2' == 'वाई - \\ डब्ल्यूडब्ल्यू-जे'
    • 'mySQL' == 'वाईएमडी एच: आई: एस'
    • 'postgreSQL' == 'वाई.ज़'
    • 'postgreSQL2' == 'Yz'
    • 'साबुन' == 'वाईएमडी \\ TH: i: s.u'
    • 'साबुन 2' == 'वाईएमडी \\ TH: i: s.uP'
    • 'यूनिक्स टिमस्टैम्प' == '@ यू'
    • 'xmlrpc' == 'Ymd \\ टीजी: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Ynj \\ टीजी: i: एस'
  • 'स्थिरांक'
    • 'अमेरिकन' == 'एफ जे वाई'
    • 'अमरीकीकरण' == 'एम / डी / वाई'
    • 'AMERICANSHORTWTIME' == 'एम / डी / वाई एच: i: एसए'
    • 'एटीओएम' == 'वाईएमडी \\ TH: i: एसपी'
    • 'कुकी' == 'एल डीएमवाई एच: आई: एस टी'
    • 'यूरोपियन' == 'जे एफ वाई'
    • 'EUROPEANSHORT' == 'डीएमवाई'
    • 'EUROPEANSHORTWTIME' == 'डीएमवाई एच: मैं: एस'
    • 'आईएसओ 8601' == 'वाईएमडी \\ TH: i: एसओ'
    • 'कानूनी' == 'जे एफ वाई'
    • 'आरएफसी 822' == 'डी डी एम वाई एच: आई: एस ओ'
    • 'आरएफसी850' == 'एल डीएम एच: आई: एस टी'
    • 'आरएफसी 1036' == 'डी डी एम वाई एच: आई: एस ओ'
    • 'आरएफसी1123' == 'डी डी MYH: i: एस ओ'
    • 'आरएफसी 2822' == 'डी डी MYH: i: एस ओ'
    • 'आरएफसी 3339' == 'वाईएमडी \\ TH: i: एसपी'
    • 'आरएसएस' == 'डी डी MYH: मैं: ओ ओ'
    • 'डब्ल्यू 3 सी' == 'वाईएमडी \\ TH: i: एसपी'
  • 'सुंदर'
    • 'सुंदर-ए' == 'जी: i.sA एल जेएस \\ ओ \\ एफ एफ वाई'
    • 'सुंदर-बी' == 'जी: आईए एल जेएस \\ ओ \\ एफ एफ वाई'
    • 'सुंदर-सी' == 'एन / डी / वाई जी: आईए'
    • 'सुंदर-डी' == 'एन / डी / वाई'
    • 'सुंदर-ई' == 'एफ जेएस - जी: ia'
    • 'सुंदर-एफ' == 'जी: आईए'

जैसा कि आप नोटिस कर सकते हैं, आप एक चरित्र से बचने के लिए डबल \ का उपयोग कर सकते हैं।

मैं जावास्क्रिप्ट में वर्तमान दिनांक कैसे प्राप्त करूं?


आप Date.js लाइब्रेरी का उपयोग कर सकते हैं जो डेट ऑब्जेक्ट को Date.js , इस प्रकार आपके पास .today () विधि हो सकती है।


आप इसका इस्तेमाल कर सकते हैं

<script>
function my_curr_date() {      
    var currentDate = new Date()
    var day = currentDate.getDate();
    var month = currentDate.getMonth() + 1;
    var year = currentDate.getFullYear();
    var my_date = month+"-"+day+"-"+year;
    document.getElementById("dateField").value=my_date;    
}
</script>

एचटीएमएल है

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>

आप इसे चेकआउट कर सकते हैं

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

और तिथि () कन्स्ट्रक्टर के लिए प्रलेखन देखें। link



इसके साथ बड़ा सौदा क्या है .. ऐसा करने का सबसे साफ तरीका है

var currentDate=new Date().toLocaleString().slice(0,10);


क्लीनर, सरल संस्करण:

new Date().toLocaleString();

परिणाम उपयोगकर्ता के लोकेल के अनुसार भिन्न होता है :

2/27/2017, 9:15:41 पूर्वाह्न


मुझे नहीं पता कि यह किसी की मदद करेगा, लेकिन मैं आज का उपयोग करने के लिए इसका उपयोग कर रहा हूं।

new Date( 3600000*Math.floor(Date.now()/3600000) )

यदि आप YYYY-MM-DD प्रारूप से खुश हैं, तो यह भी काम करेगा।

new Date().toISOString().split('T')[0]

2018-03-10


यदि आप jQuery का उपयोग कर रहे हैं। इस लाइनर को आज़माएं:

$.datepicker.formatDate('dd/mm/yy', new Date());

तारीख को स्वरूपित करने के लिए सम्मेलन यहां दिया गया है

  • डी-महीने का दिन (कोई अग्रणी शून्य नहीं)
  • डीडी - महीने का दिन (दो अंक)
  • ओ - वर्ष का दिन (कोई अग्रणी शून्य नहीं)
  • ओओ - वर्ष का दिन (तीन अंक)
  • डी - दिन का नाम छोटा
  • डीडी - दिन का नाम लंबा
  • मी - वर्ष का महीना (कोई अग्रणी शून्य नहीं)
  • मिमी - वर्ष का महीना (दो अंक)
  • एम - महीने का नाम छोटा
  • एमएम - महीने का नाम लंबा
  • वाई साल (दो अंक)
  • वर्ष - (चार अंक)

JQuery datepicker का संदर्भ यहां दिया गया है


यदि आप डेट प्रारूपों पर बहुत अधिक ग्रेन्युलर नियंत्रण की तलाश में हैं, तो मैं पूरी तरह से पलज की जांच करने की सलाह देता हूं। भयानक पुस्तकालय - और केवल 5 केबी। http://momentjs.com/


यदि आप बस समय की जानकारी के बिना एक तारीख चाहते हैं, तो उपयोग करें:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);


यह हर बार काम करता है:

    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);
    
    document.write(today);


वर्तमान दिनांक और समय वाली एक नई Date वस्तु उत्पन्न करने के लिए new Date() का उपयोग करें।

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

if(dd<10) {
    dd = '0'+dd
} 

if(mm<10) {
    mm = '0'+mm
} 

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

यह आपको एमएम / डीडी / वाईय के प्रारूप में आज की तारीख देगा।

बस today = mm +'/'+ dd +'/'+ yyyy; बदलें today = mm +'/'+ dd +'/'+ yyyy; जो भी प्रारूप आप चाहते हैं।


सबसे छोटा जवाब है: new Date().toJSON().slice(0,10)


एक लाइन जेएस समाधान:

tl; डॉ

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

एज, एफएफ नवीनतम, और क्रोम रिटर्न आज के दिन todaysDate = "2/7/2017"
आईई 10 + में "काम करता है" *

2/7/2017 संपादित करें

मुझे पता चला कि आईई 10 और आईई एज कुछ अलग तरीके से करते हैं .. आंकड़े जाओ। new Date(Date.now()).toLocaleString() इनपुट के रूप में,

आईई 10 रिटर्न:

"Tuesday, February 07, 2017 2:58:25 PM"

मैं एक बड़ा लंबा काम और एफटीएफवाई लिख सकता था। लेकिन आपको वास्तव में इस सामान के लिए moment.js का उपयोग करना चाहिए। मेरी स्क्रिप्ट केवल इसे साफ़ करती है और आपको विस्तारित पारंपरिक अमेरिकी नोटेशन देता है: > todaysDate = "March 06, 2017"

आईई EDGE रिटर्न:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

बेशक यह इतना आसान नहीं हो सकता है। एज की तारीख स्ट्रिंग में प्रत्येक दृश्यमान के बीच अदृश्य "•" वर्ण हैं। तो न केवल हम जांच रहे होंगे कि पहला चरित्र एक संख्या है, लेकिन पहले 3 वर्ण हैं, क्योंकि यह पता चला है कि पूरी तिथि सीमा में कोई भी चरित्र अंततः किसी बिंदु पर एक बिंदु या स्लैश होगा। तो चीजों को सरल रखने के लिए, बस .slice() पहले तीन वर्ण (भविष्य के .slice() खिलाफ छोटे बफर) और फिर संख्याओं की जांच करें। यह शायद ध्यान दिया जाना चाहिए कि ये अदृश्य बिंदु संभावित रूप से आपके कोड में बने रह सकते हैं। यदि आप इस स्ट्रिंग को अपने दृश्य में प्रिंट करने की तुलना में बड़ी योजनाएं प्राप्त कर चुके हैं तो मैं शायद उसमें खोदूँगा।

∴ एक-लाइनर अपडेट किया गया:

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

वह पढ़ने के लिए बेकार है। कैसा रहेगा:

var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

मूल उत्तर

मेरे पास आपके लिए एक लाइनर है:

new Date(Date.now()).toLocaleString().split(', ')[0];

और [1] आपको दिन का समय देगा।


var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

इसे चरणों में तोड़ने के लिए:

  1. (new Date()).toString() देता है "शुक्र जून 28 2013 15:30:18 जीएमटी -00000 (पीडीटी)"

  2. (new Date()).toString().split(' ') प्रत्येक स्थान पर उपर्युक्त स्ट्रिंग को विभाजित करता है और निम्नानुसार एक सरणी देता है: ["शुक्र", "जून", "28", "2013", "15: 31:14 "," जीएमटी -00000 "," (पीडीटी) "]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') उपरोक्त सरणी से दूसरे, तीसरे और चौथे मान लेता है, उन्हें रिक्त स्थान के साथ (new Date()).toString().split(' ').splice(1,3).join(' ') , और एक देता है स्ट्रिंग "जून 28 2013"


var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

replace विकल्प का उपयोग करें यदि आप utc वैरिएबल का पुन: उपयोग करने जा रहे हैं, जैसे new Date(utc) , क्योंकि फ़ायरफ़ॉक्स और सफारी डैश के साथ एक तारीख को पहचान नहीं लेते हैं।


new Date().toISOString().slice(0,10); 

भी काम करेगा


var date = new Date().toLocaleDateString("en-US");

साथ ही, आप दो पैरामीटर के साथ विधि को toLocaleDateString कॉल कर सकते हैं:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

MSDN पर लेख। MDN पर इस विधि के बारे में अधिक जानकारी।






time