2010-03-05 13 views
8

jQuery के माध्यम से एक तारीख की वैधता का परीक्षण करती है:एक पर सेट करें जावास्क्रिप्ट में

!/Invalid|NaN/.test(new Date(value)) 

new Date(dateString)Date.parse(dateString) रूप में ही है और स्ट्रिंग पार्स करने में ब्राउज़र/OS स्थान का उपयोग करता।

मैं DD/MM/YYYY पर विश्लेषण करने की कोशिश कर रहा हूं लेकिन मुझे एक त्रुटि मिलती है क्योंकि मेरा ब्राउज़र MM/DD/YYYY ढूंढ रहा है। चूंकि मेरा उत्पाद केवल DD/MM लोगों द्वारा उपयोग किया जाएगा, इसलिए मैं इस व्यवहार को मजबूर करना चाहता हूं।

मैं एक कस्टम सत्यापनकर्ता लिख ​​सकता हूं, लेकिन जावास्क्रिप्ट के माध्यम से ब्राउजर लोकेल को भी बदलना संभव है?

उत्तर

-2

आप लोकेल को नहीं बदल सकते हैं, क्योंकि EMCAScript specification में ऐसी कोई सुविधा नहीं है।

हालांकि, php.js नामक एक अच्छा पैकेज है जो जावास्क्रिप्ट में PHP कार्यों को लागू करता है।

दो कार्य setlocale() और date() हैं। आप उनका उपयोग कर सकते हैं।

+5

वाह, मैं कभी भी कभी अनुशंसा नहीं करता कि कोई भी उस php.js कोड को अनियंत्रित लंबाई के ध्रुव के साथ स्पर्श करे। युक। – Pointy

+0

वह हमेशा निर्भरताओं को देख सकता है और केवल आवश्यक कार्यों का उपयोग कर सकता है। – Sagi

+1

php.js का उपयोग नहीं कर रहा हूं, जानकारी के लिए स्वीकार किया गया है कि जावास्क्रिप्ट – ariel

-1

यदि आपका उत्पाद केवल डीडी/एमएम/वाई वाई वाई वाई लोगों द्वारा उपयोग किया जाएगा, तो अपने ब्राउज़र को डीडी/एमएम/वाई वाई वाईवाई समर्थन लोकेल में सेट करें।

2

आपको moment.js का उपयोग पार्स तिथियों के लिए करना चाहिए। यदि आप अन्य स्थानों/लिपियों में तारीख तार को संभालने की ज़रूरत

//parse string according to format and return new moment 
var day = moment("16/12/2017", "DD/MM/YYYY"); 

var dayAsDate = day.toDate(); //you can even covert the moment to a Date 

Globalize भी एक date parsing module है।

संबंधित मुद्दे