PHP में, आप आसानी से एक अंग्रेजी टेक्स्टुअल डेटाइम विवरण को उचित तिथि में बदल सकते हैं strtotime()।
क्या जावास्क्रिप्ट में भी ऐसा ही कुछ है?
जवाबों:
मुझे यह लेख मिला और मैंने ट्यूटोरियल की कोशिश की। मूल रूप से, आप एक तारीख को पार्स करने के लिए डेट कंस्ट्रक्टर का उपयोग कर सकते हैं, फिर getTime()विधि से सेकंड प्राप्त करें लिख सकते हैं
var d=new Date("October 13, 1975 11:13:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
क्या यह काम करता है?
strtotime()को शामिल करता है, लेकिन कई अन्य स्वरूपों का समर्थन करता है।
हाँ यही है। और यह सभी प्रमुख ब्राउज़र में समर्थित है:
var ts = Date.parse("date string");
अंतर केवल इतना है कि यह फ़ंक्शन सेकंड के बजाय मिलीसेकंड देता है, इसलिए आपको परिणाम को 1000 से विभाजित करने की आवश्यकता है।
जाँच करें कि क्या मान्य प्रारूप जावास्क्रिप्ट पार्स कर सकते हैं।
strtotime("now"); strtotime("10 September 2000"); strtotime("+1 day"); strtotime("+1 week"); strtotime("+1 week 2 days 4 hours 2 seconds"); strtotime("next Thursday"); strtotime("last Monday");
की जाँच करें इस PHP के strtotime () जावास्क्रिप्ट में के कार्यान्वयन!
मैंने पाया कि यह PHP के लिए हर उस चीज के लिए अनौपचारिक रूप से काम करता है जो मैंने उस पर फेंकी थी।
अद्यतन: संस्करण 1.0.2 के अनुसार यह कार्य इस मामले को संभाल नहीं सकता है:
'2007:07:20 20:52:45'(:वर्ष और महीने के लिए विभाजक को नोट करें )
यह अब एक npmमॉड्यूल के रूप में उपलब्ध है ! बस npm install locutusऔर फिर अपने स्रोत में:
var strtotime = require('locutus/php/datetime/strtotime');
मैं php में स्ट्रेटोटाइम () से ईर्ष्या करता हूं, लेकिन मैं पल का उपयोग करके जावास्क्रिप्ट में मेरा करता हूं। Php से उतना मीठा नहीं है, लेकिन ट्रिक बड़े करीने से है।
// first day of the month
var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
का उपयोग करते हुए आगे और पीछे जाएं subtract()और add()साथ endOf()और startOf():
// last day of previous month
var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
तार को पार्स करने के लिए ब्राउज़र समर्थन असंगत है । क्योंकि कोई विनिर्देश नहीं है कि किन स्वरूपों का समर्थन किया जाना चाहिए, कुछ ब्राउज़रों में क्या काम करता है अन्य ब्राउज़रों में काम नहीं करेगा।
Moment.js आज़माएं - यह पार्सिंग तिथियों के लिए क्रॉस-ब्राउज़र कार्यक्षमता प्रदान करता है :
var timestamp = moment("2013-02-08 09:30:26.123");
console.log(timestamp.milliseconds()); // return timestamp in milliseconds
console.log(timestamp.second()); // return timestamp in seconds
ऐसे कुछ मॉड्यूल हैं जो समान व्यवहार प्रदान करते हैं, लेकिन बिल्कुल PHP के स्ट्रेटोटाइम की तरह नहीं। कुछ विकल्पों में से मैंने पाया कि तारीख-उपयोग सर्वोत्तम परिणाम देता है।
var strdate = new Date('Tue Feb 07 2017 12:51:48 GMT+0200 (Türkiye Standart Saati)');
var date = moment(strdate).format('DD.MM.YYYY');
$("#result").text(date); //07.02.2017
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
<div id="result"></div>
Date() - sooo ... के रूप में ही new Date(strdate)वास्तव में ...
शायद आप एक नमूना समारोह का फायदा उठा सकते हैं जैसे:
function strtotime(date, addTime){
let generatedTime=date.getTime();
if(addTime.seconds) generatedTime+=1000*addTime.seconds; //check for additional seconds
if(addTime.minutes) generatedTime+=1000*60*addTime.minutes;//check for additional minutes
if(addTime.hours) generatedTime+=1000*60*60*addTime.hours;//check for additional hours
return new Date(generatedTime);
}
let futureDate = strtotime(new Date(), {
hours: 1, //Adding one hour
minutes: 45 //Adding fourty five minutes
});
document.body.innerHTML = futureDate;
`