क्या जावास्क्रिप्ट को PHP के time()
फ़ंक्शन से लौटाए गए टाइमस्टैम्प की गणना करना संभव है और इसे "सूर्य, 18 अप्रैल 2010 को 4:00 बजे" जैसे एक पठनीय प्रारूप में प्रस्तुत करना संभव है?PHP के समय से जावास्क्रिप्ट पठनीय दिनांक/समय()
उत्तर
उपयोग Date object ऐसा करने के लिए:
new Date(<?php echo time(); ?>*1000)
आप Date
क्योंकि 1000 से यूनिक्स टाइमस्टैम्प गुणा करने की आवश्यकता की उम्मीद टाइमस्टैम्प मिलीसेकेंड में किया जाना है।
और तिथि प्रारूप करने के लिए, तो आप इस Date.format
method (दिनांक कोई भी में बनाया गया है) का उपयोग कर सकते हैं।
आप इस सामान को करने में वाकई सावधान रहना चाहते हैं। जब आप एक सर्वर-साइड टाइम मान लेते हैं जो कि "युग सीमा" मान के बाद से पारंपरिक "सेकंड (या मिलीसेकंड) की संख्या है, और उसके बाद इसे" दिनांक "ऑब्जेक्ट में बदल दें, तो एक समय के लिए उपयुक्त समय क्षेत्र में अनुवाद होता है संदर्भ का लोकेल।
समस्या तब उत्पन्न होती है जब आपके पास शिकागो में स्थित सर्वर होता है, और आपकी साइट का उपयोग करते हुए हवाई में कोई व्यक्ति, — उन "लुओ" मामलों में से एक है, इसमें कोई संदेह नहीं है, भुना हुआ सुअर और घास के स्कर्ट से भरा हुआ नाचने वाली लड़कियों, गर्म उष्णकटिबंधीय आसमान के नीचे एक दुर्लभ शाम, समुद्री फूलों को डूबने वाले विदेशी फूल — और अब देर हो चुकी है। मेरी भलाई, यह लगभग आधी रात है! मां के बारे में जब भी मैं उसे लिखूं तो माँ क्या सोचती है?
हमारी पार्टी-गोयर आपकी साइट का उपयोग करने के लिए 11:30 बजे बैठता है। अब, निश्चित रूप से, हवाई के काफी पूर्व होने के नाते, आपका सर्वर सोचता है कि यह 5:30 बजे है, और यह तारीख एक दिन बाद है जब हमारी पार्टी-गोयर माँ को अपने त्वरित नोट में उतरेगी। तो आपका सर्वर यहां दिए गए उत्तरों में वर्णित वेब पेज में अपना समय मान लिखता है, और — सही ढंग से — स्थानीय हवाई समय हमारे पार्टी-गोयर के होटल के कमरे में पृष्ठ पर दिखाई देता है।
समस्या यह है: अगर है कि स्थानीय समय इसे वापस कुछ फार्म क्षेत्र से अपने आवेदन करने के लिए बनाता है, और अपने आवेदन शिकागो में स्थानीय समय के रूप में यह व्यवहार करता है, तो आपकी साइट कल की तारीख मिल जाएगा। आपके आवेदन के आधार पर जो ठीक है या यह ठीक नहीं है - बिंदु यह है कि आपको का ट्रैक रखना होगा जहां एक तिथि (सामान्य कैलेंडर नोटेशन में व्यक्त की गई) के साथ आता है, जहां का उपयोग किया जाता है।
आप निश्चित रूप से विपरीत समस्या हो सकती है। यही है, यदि आपका सर्वर हमेशा अपने स्थानीय समय क्षेत्र में तिथियां प्रस्तुत करता है, तो दुनिया में कहीं और उपयोगकर्ता भ्रमित (स्पष्ट रूप से गलत) दिनांक और समय मान देखेंगे, इसलिए इंटरफ़ेस को यह स्पष्ट करना होगा कि उन मानों का क्या अर्थ है। जब आपकी साइट शेड्यूल से संबंधित सेवाएं प्रदान करती है तो समस्याएं महत्वपूर्ण हो जाती हैं। यदि संचालन शेड्यूल करना संभव है, तो यह महत्वपूर्ण है कि इंटरफ़ेस स्तर पर चीजें रखता है ताकि "30 अप्रैल को अपराह्न 10:00 बजे" का अर्थ उस दिनांक और समय सर्वर पर या लोकल में उस दिनांक और समय से है, जिसमें शेड्यूल व्यवस्थित किया गया था। जो भी हो, आपको चीजों को सुसंगत रखने के लिए सावधान रहना होगा।
एक संख्यात्मक यूनिक्स टाइमस्टैम्प के बजाय आप Date.parse() समझने की तिथि का एक पाठ्य प्रतिनिधित्व भी भेज सकते हैं।
शायद यह ग्लोबल वार्मिंग में मेरा योगदान है, लेकिन मुझे लगता है कि एक प्रारूप का उपयोग करने में लाभ हैं जो थोड़ा अधिक मानव पठनीय है और इसमें टाइमज़ोन जानकारी शामिल है।
उदा।
<?php
// I have "decided" America/Los_Angeles fits most of my audience
date_default_timezone_set('America/Los_Angeles');
$now = time();
$yesterday = strtotime('yesterday', $now);
// March 27, 1976 08:00:00 tz:America/Los_Angeles
$someotherdate = mktime(8, 0, 0, 3, 27, 1976)
?><html>
<head><title>...</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function foo() {
$('.datetime').each(function() {
var t = $(this).text();
t = new Date(Date.parse(t)).toLocaleString();
$(this).text(t);
});
}
</script>
</head>
<body>
<div><span class="datetime"><?php echo date(DateTime::RSS, $now); ?></span></div>
<div><span class="datetime"><?php echo date(DateTime::RSS, $yesterday); ?></span></div>
<div><span class="datetime"><?php echo date(DateTime::RSS, $someotherdate); ?></span></div>
<button onclick="foo()">to local time</button>
</body>
</html>
यह मेरा ब्राउज़र में
Sat, 17 Apr 2010 04:40:15 -0700
Fri, 16 Apr 2010 00:00:00 -0700
Sat, 27 Mar 1976 08:00:00 -0800
प्रिंट और to local time
बटन
Samstag, 17. April 2010 13:40:15
Freitag, 16. April 2010 09:00:00
Samstag, 27. März 1976 17:00:00
हां लेकिन मेरा जवाब देखें। यदि सर्वर जावास्क्रिप्ट को एक समय मान देता है जिसे स्थानीय समय * सर्वर * के अनुसार स्वरूपित किया गया है, तो क्लाइंट सर्वर-साइड टाइम देखेगा। यह वांछित हो सकता है, या यह नहीं हो सकता है; यह आवेदन और समय मूल्य के अर्थ पर निर्भर करता है, किसी भी मामले में यह दृष्टिकोण संख्यात्मक समय मूल्य का उपयोग करने के दृष्टिकोण से अलग-अलग परिणाम देगा। – Pointy
@ पॉइंट: सुनिश्चित नहीं है कि मैं इस मामले में आपकी चिंता को समझता हूं। निस्संदेह मूल्य इस बात पर निर्भर करता है कि सर्वर की घड़ी "सोचने" का समय क्या है, यानी अगर सर्वर की घड़ी गलत है तो मूल्य भी गलत होगा। लेकिन मैंने प्रारूप के रूप में 'gmdate()' और 'डेटटाइम :: डब्ल्यू 3 सी' का उपयोग किया, यानी आउटपुट '2010-04-17T11: 12: 22 + 00: 00' जैसा दिखता है जहां '00: 00' टाइमज़ोन को चिह्नित करता है (कम से कम ऑफसेट)। Date.parse() ऑफसेट को पहचानता है और उसके अनुसार मान का व्यवहार करता है। – VolkerK
ठीक उसी स्थिति में यह निश्चित रूप से "कच्चे" समय मान (संख्यात्मक "सेकंड की संख्या") का उपयोग करने के समान प्रभाव होगा, इसलिए मुझे यह देखने में विफल होने के लिए खेद है। – Pointy
से टकराने के बाद (के बाद से मेरी स्थानीय समय क्षेत्र यूरोप/बर्लिन, सीईटी, UTC + 1/2 है) यह अब 2013 है, और जितना अधिक से अधिक लोग जेएसओएन में परिणाम पास करने और क्लाइंट पक्ष पर प्रसंस्करण के लिए PHP पक्ष पर SQL परिणामों को संसाधित करने से स्विच करते हैं, मुझे लगता है कि moment.js को आसान प्रतिलिपि प्रदान करने के लिए स्वयं का कुछ ध्यान देने योग्य है जावास्क्रिप्ट में PHP के strtotime() और दिनांक() कार्यों के लिए cements, और कुछ और।
बस में शामिल हैं:
<script src="SCRIPT_DIR/moment.min.js" type="text/javascript"></script>
तो यह रूप में आसान है के रूप में:
// Simulates ajax response
var data = { someDate: "2023-08-23 11:52:39" }
// .unix() converts to Unix timestamp: 1692816759
moment(data.someDate).unix();
// Displaying it in a readable format
// Aug 23, 11:52 AM
moment("2023-08-23 11:52:39").format('MMM D, hh:mm A');
// Now
moment();
// Support for manipulation and chaining
moment().add('days', 7).subtract('months', 1).hours(15).minutes(0).seconds(0);
आप कर सकते हैं 5.5kb js यहाँ फ़ाइल प्राप्त करें:
अधिक यहाँ डॉक्स:
- 1. पठनीय जावास्क्रिप्ट
- 2. टाइमस्टैम्प को पठनीय दिनांक/समय में कनवर्ट करें PHP
- 3. स्वत: मानव पठनीय समय अंतराल
- 4. PHP is_readable() पठनीय सांबा निर्देशिका
- 5. अब आसान मानव पठनीय दिनांक समय
- 6. मानव-पठनीय "समय पहले" कैसे दिखाएं
- 7. PHP क्वेरी को PHP में और अधिक पठनीय कैसे बनाएं?
- 8. क्रॉन से मानव पठनीय स्ट्रिंग
- 9. सी # मानव पठनीय समय का विश्लेषण करने के लिए लाइब्रेरी
- 10. PHP से जावास्क्रिप्ट फ़ंक्शन सेकोड()
- 11. स्वचालित रूप से जावास्क्रिप्ट या PHP
- 12. पठनीय प्रारूप
- 13. django टेम्पलेट्स के साथ पठनीय एचटीएमएल बनाना
- 14. php - टाइमस्टैम्प स्ट्रिंग को पठनीय समय प्रारूप में बदलने में मदद
- 15. डी-ओबफस्केट जावास्क्रिप्ट कोड इसे फिर से पठनीय बनाने के लिए
- 16. PHP/जावास्क्रिप्ट
- 17. यूनिक्स टाइमस्टैम्प को मानव पठनीय समय में कैसे परिवर्तित करें?
- 18. स्थानीय समय (10 अंक संख्या) को एक पठनीय डेटाटाइम प्रारूप
- 19. जावास्क्रिप्ट/PHP और टाइमज़ोन
- 20. PHP ज़ेंड फ्रेमवर्क कोडिंग मानक, जो अधिक पठनीय दृष्टिकोण है?
- 21. PHP निष्पादन समय सीमा से बचें
- 22. माइक्रोसॉन्ड को मानव पठनीय समय में परिवर्तित करें
- 23. स्कैला से मानव-पठनीय एक्सएमएल आउटपुट?
- 24. जावास्क्रिप्ट PHP के बराबर विस्फोट()
- 25. जावास्क्रिप्ट के अंदर PHP गूंज?
- 26. जावास्क्रिप्ट PHP-script
- 27. पीएचपी is_readable गैर पठनीय फ़ाइल
- 28. ट्रांस्लर की तलाश में: php से जावास्क्रिप्ट
- 29. जावास्क्रिप्ट में न्यूलाइन कैसे संभालें? (PHP से)
- 30. जावास्क्रिप्ट मिलीसेकेंड से दिनांक और समय क्षेत्र
वह दिनांक। प्रारूप विधि देवता है! बहुत बहुत धन्यवाद :) – Lyon
गुणा करने के बजाय आप केवल 3 शून्य जोड़ सकते हैं: var अब = नई तिथि ( Php echo time();?> 000); –