मैंने कुछ उपयोगों को मेरे उपयोग के मामले के अनुरूप @thebreiflabb द्वारा स्वीकृत उत्तर में सुधार के रूप में जोड़ा और सोचा कि मैं साझा करूंगा।
यदि रेगेक्स timeReg = /(\d+)[\.|:](\d+)\s?(\w+)/;
, में बदल दिया गया है तो यह कुछ अन्य आम मामलों को संभालेगा।
अर्थात्:
- घंटे और मिनट
- की इजाजत दी AM/PM के बीच दशमलव बिंदु के बजाय एक कॉलन का उपयोग कर तुरंत कोई जगह के साथ समय का पालन करने के
भी करने के लिए सेकंड की स्थापना 0 (के बाद से है कि अपने मुख्य उपयोग मामला था)
जिसके परिणामस्वरूप कोड होगा:
var test, parts, hours, minutes, date,
d = (new Date()).getTime(),
tests = ['01.25 PM', '01:25pm', '1:25 PM', '11.35 PM', '12.45 PM', '01.25 AM', '11.35 AM', '12.45 AM'],
i = tests.length,
timeReg = /(\d+)[\.|:](\d+)\s?(\w+)/;
for(; i-- > 0;) {
test = tests[i];
parts = test.match(timeReg);
hours = /am/i.test(parts[3]) ?
function(am) {return am < 12 ? am : 0}(parseInt(parts[1], 10)) :
function(pm) {return pm < 12 ? pm + 12 : 12}(parseInt(parts[1], 10));
minutes = parseInt(parts[2], 10);
date = new Date(d);
date.setHours(hours);
date.setMinutes(minutes);
date.setSeconds(0);
console.log(test + ' => ' + date);
}
समय 12.00 PM और 12:59 यह अभी भी समय है, जो समय 12 में आता है करने के लिए 12 घंटे कहते बीच है, तो चाहते हैं। ** AM – jaisonDavis
@jaisonDavis आप सही हैं, इसे पकड़ने के लिए धन्यवाद, मैं वास्तव में 12 घंटे के प्रारूप का उपयोग नहीं करता हूं।मैंने मूल उत्तर में एक जोड़ा है, जो इन मामलों को संभालता है। और मुझे याद रखना होगा 12.XX जब मैं भविष्य में 12-घंटे के प्रारूप के साथ काम करता हूं :-) – thebreiflabb
यह वास्तव में मेरी मदद करता है, – Paulj