आज आधी रात के लिए टाइमस्टैम्प प्राप्त करना?


123

मैं आज आधी रात के लिए php में टाइमस्टैम्प पाने के बारे में कैसे जाऊँगा। मान लें कि यह सोमवार शाम 5 बजे है और मैं सोमवार (आज) आधी रात (12 बजे) का टाइमस्टैम्प चाहता हूं जो पहले ही हो चुका है।

धन्यवाद


मध्यरात्रि नहीं है और न ही दोपहर। तकनीकी रूप से भी, आधी रात के लिए कोई टाइमस्टैम्प मौजूद नहीं है।
हकरे

16
@ ठक्रे मैं आपसे असहमत हूं। मध्यरात्रि है और टाइमस्टैम्प जिस भी प्रारूप में है, मध्य रात्रि के लिए एक मान है।
जी-नगेट

1
अगर 00:00:00 आज या कल माना जाता है। आज आधी रात, तकनीकी रूप से, हर समय, हमारे पीछे है। आप "आज रात" के 23:59:59, या 00:00:00 "आज की आधी रात, जो कल है" चाहते हैं, कम या ज्यादा।
wesside

5
00:00:00 का समय आज की मध्यरात्रि होगा क्योंकि पहले से ही 00:00:00 तक पहुंचने में बहुत समय लगता है। जहां आज रात 23:59:59 होगी। अगर आज के हिसाब से आपका बोलना। आधी रात को ए.एम.
नाजका

4
00:00 एक दिन की शुरुआत में आधी रात है, 24:00 एक दिन के अंत में आधी रात है। हालांकि सादगी के लिए, अधिकांश डिजिटल घड़ियों 24:00 को छोड़ देती हैं - यह घोषणा करते हुए कि आधी रात एक नए दिन की शुरुआत है। फ़रवरी 24:00 का 8 वाँ और फ़रवरी 00 का 9 वाँ समय एक ही बिंदु है।
जोहान

जवाबों:


239
$timestamp = strtotime('today midnight');

आप एक नज़र रखना चाह सकते हैं कि PHP को क्या पेशकश करनी है: http://php.net/datetime


52
@SamHuckaby: यह और भी आसान है: $timestamp = strtotime('today');आधी रात है। लेकिन pssst एक ऊपर एक सवाल के जवाब के रूप में कूलर दिखता है;)
hkre

मुझे वास्तव में आज की शुरुआत और आज की आधी रात की जरूरत है। मैं आज की शुरुआत कैसे पा सकता हूं मेरा मतलब 00:00:00
हैप्पी कोडर

3
@AlwinAugustin: आपको अपने शब्दों को अलग करने पर विचार करना चाहिए। आधी रात तकनीकी रूप से दो दिनों के बीच की होती है। तो कुछ हद तक "अब कोई भी नहीं है"। इसके अलावा: आज की मिडगनाइट (प्रति परिभाषा) आज की शुरुआत से ठीक पहले है। आप शायद आज दोपहर के बाद अगली आधी रात का मतलब है ।
हक्रे

हाँ वास्तव में मुझे क्या चाहिए आज का 00:00:00 और आज का 23:59:59
हैप्पी कोडर

2
ध्यान रखें कि यह आपके PHP सर्वर के मध्याह्न काल का उत्पादन करेगा, न कि UTC + 0 ! UTC + 0 प्राप्त करने के लिए आप उपयोग कर सकते हैं strtotime('today+00:00')
मॅई

73

मुझे लगता है कि आपको नए PHP DateTime ऑब्जेक्ट का उपयोग करना चाहिए क्योंकि इसमें 32 बिट प्रतिबंधों से परे दिनांक करने वाली कोई समस्या नहीं है जो स्ट्रेटोटाइम () है। यहां एक उदाहरण दिया गया है कि आपको मध्यरात्रि में आज की तारीख कैसे मिलेगी।

$today = new DateTime();
$today->setTime(0,0);

या यदि आप PHP 5.4 का उपयोग कर रहे हैं या बाद में आप इसे इस तरह से कर सकते हैं:

$today = (new DateTime())->setTime(0,0);

तब आप echo $today->format('Y-m-d');उस फॉर्मेट को प्राप्त करने के लिए उपयोग कर सकते हैं जिसे आप अपनी ऑब्जेक्ट आउटपुट के रूप में चाहते हैं।

PHP DateTime वस्तु


14
मैं नई DateTime ऑब्जेक्ट का उपयोग करना भी पसंद करता हूं। यदि आप इस उत्तर को @ hakr's के साथ मिलाते हैं: new DateTime('today midnight')जो इरादे को और अधिक स्पष्ट करता है (लेकिन यह निश्चित रूप से स्वाद का मामला है)।
Martijn

1
मैं ORM SQL काम कर रहा हूँ और मुझे तुलना के लिए DateTime ऑब्जेक्ट का उपयोग करना पड़ा। यही वह है जिसकी तलाश में मैं हूं। +1
नोबल उत्थान

हो सकता है$today = new DateTime('today')
प्रोज्जी

यदि आप कार्बन का उपयोग कर रहे हैं तो भी उपयोगी है, जो डेटाइम से विरासत में मिला है। इस प्रकार, आप भी कर सकते हैं new Carbon('today midnight')और फिर आप सभी कार्बन सामान का उपयोग कर सकते हैं ->subDays(6)। देखें। carbon.nesbot.com
क्रिस्टोफर के।

32 बिट प्रतिबंध के बारे में: strtotime के लिए PHP दशाएँ बताती हैं : " PHP के 64-बिट संस्करणों के लिए, टाइमस्टैम्प की वैध सीमा प्रभावी रूप से अनंत है, क्योंकि 64 बिट्स दोनों दिशाओं में लगभग 293 बिलियन वर्षों का प्रतिनिधित्व कर सकते हैं।" तो यह केवल 32bit php पर लागू होता है।
क्रिस्टोफर के।


7

आप सबसे हालिया खगोलीय घटना के समय की गणना करना चाह रहे हैं जहां सूर्य सीधे आपके पैरों के नीचे से गुजरा है, उच्च दोपहर को चिह्नित करने के स्थानीय सम्मेलनों के लिए समायोजित किया गया है और संभावित रूप से समायोजन भी किया गया है ताकि लोगों के पास काम से घर लौटने के बाद पर्याप्त दिन की रोशनी बची रहे और अन्य राजनीतिक विचार।

सही है? वास्तव में यह एक आम समस्या है लेकिन पूरा जवाब स्थान-निर्भर है:

$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();

"यहाँ" की संभावित परिभाषाएँ https://secure.php.net/manual/en/timezones.php पर सूचीबद्ध हैं


पसंद है strtotime('America/New_York today midnight');? - 3v4l.org/I85qD
हैकर

5
$today_at_midnight = strtotime(date("Ymd"));

आपको वह देना चाहिए जो आप कर रहे हैं।

व्याख्या

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

संदर्भ: तिथि समारोह: http://php.net/manual/en/function.date.php

स्ट्रिंग टू टाइम: http://us2.php.net/manual/en/function.strtotime.php


टाइमस्टैम्प? वह सिर्फ एक तारीख है।
21

क्या कोई विशेष प्रारूप है जो ओपी ने पूछा है? यदि हां, तो मुझे अपनी पोस्ट को संशोधित करने में खुशी होगी, जो भी प्रारूप वे चाहते हैं।
समहुबाई

पूरी तरह से नजरअंदाज strtotime(), मन तो तारीख समारोह पर केंद्रित था। क्षमा याचना।
वेज़ाइड

2

अधिक वस्तु तरीके से:

$today = new \DateTimeImmutable('today');

उदाहरण:

 echo (new \DateTimeImmutable('today'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 00:00:00

तथा:

echo (new \DateTimeImmutable())->format('Y-m-d H:i:s');
echo (new \DateTimeImmutable('now'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 14:00:35

1
$timestamp = strtotime('today midnight');

के समान है

$timestamp = strtotime('today');

और यह आपके सर्वर पर थोड़ा कम काम है।


0

$midnight = strtotime('midnight');मान्य है
आप strtotime('12am')या भी आज़मा सकते हैं strtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]')। मैंने आज आधी रात से पहले जोड़ना छोड़ दिया क्योंकि डिफ़ॉल्ट आज है।


0

यदि आप कार्बन का उपयोग कर रहे हैं तो आप निम्न कार्य कर सकते हैं। ExpireHTTP हैडर सेट करने के लिए आप इस तिथि को प्रारूपित भी कर सकते हैं ।

Carbon::parse('tomorrow midnight')->format(Carbon::RFC7231_FORMAT)

0

19 अप्रैल, 2020 में अद्यतन उत्तर

बस हम यह कर सकते हैं:

$today = date('Y-m-d 00:00:00');


-1

function getTodaysTimeStamp() {
  const currentTimeStamp = Math.round(Date.now() / 1000);
  const startOfDay = currentTimeStamp - (currentTimeStamp % 86400);
  return { startOfDay, endOfDay: startOfDay + 86400 - 1 };
}

// starts from sunday
function getThisWeeksTimeStamp() {
  const currentTimeStamp = Math.round(Date.now() / 1000);
  const currentDay = new Date(currentTimeStamp * 1000);
  const startOfWeek = currentTimeStamp - (currentDay.getDay() * 86400) - (currentTimeStamp % 86400);
  return { startOfWeek, endOfWeek: startOfWeek + 7 * 86400 - 1 };
}


function getThisMonthsTimeStamp() {
  const currentTimeStamp = Math.round(Date.now() / 1000);
  const currentDay = new Date(currentTimeStamp * 1000);
  const startOfMonth = currentTimeStamp - ((currentDay.getDate() - 1) * 86400) - (currentTimeStamp % 86400);
  const currentMonth = currentDay.getMonth() + 1;
  let daysInMonth = 0;
  if (currentMonth === 2) daysInMonth = 28;
  else if ([1, 3, 5, 7, 8, 10, 12].includes(currentMonth)) daysInMonth = 31;
  else daysInMonth = 30;
  return { startOfMonth, endOfMonth: startOfMonth + daysInMonth * 86400 - 1 };
}


console.log(getTodaysTimeStamp());
console.log(getThisWeeksTimeStamp());
console.log(getThisMonthsTimeStamp());


सवाल PHP से संबंधित है। यह उत्तर जावास्क्रिप्ट में लिखा है
इलेक्ट्रिक कॉफी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.