मैं आज आधी रात के लिए php में टाइमस्टैम्प पाने के बारे में कैसे जाऊँगा। मान लें कि यह सोमवार शाम 5 बजे है और मैं सोमवार (आज) आधी रात (12 बजे) का टाइमस्टैम्प चाहता हूं जो पहले ही हो चुका है।
धन्यवाद
मैं आज आधी रात के लिए php में टाइमस्टैम्प पाने के बारे में कैसे जाऊँगा। मान लें कि यह सोमवार शाम 5 बजे है और मैं सोमवार (आज) आधी रात (12 बजे) का टाइमस्टैम्प चाहता हूं जो पहले ही हो चुका है।
धन्यवाद
जवाबों:
$timestamp = strtotime('today midnight');
आप एक नज़र रखना चाह सकते हैं कि PHP को क्या पेशकश करनी है: http://php.net/datetime
$timestamp = strtotime('today');
आधी रात है। लेकिन pssst एक ऊपर एक सवाल के जवाब के रूप में कूलर दिखता है;)
strtotime('today+00:00')
।
मुझे लगता है कि आपको नए 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');
उस फॉर्मेट को प्राप्त करने के लिए उपयोग कर सकते हैं जिसे आप अपनी ऑब्जेक्ट आउटपुट के रूप में चाहते हैं।
new DateTime('today midnight')
जो इरादे को और अधिक स्पष्ट करता है (लेकिन यह निश्चित रूप से स्वाद का मामला है)।
$today = new DateTime('today')
new Carbon('today midnight')
और फिर आप सभी कार्बन सामान का उपयोग कर सकते हैं ->subDays(6)
। देखें। carbon.nesbot.com
आप सबसे हालिया खगोलीय घटना के समय की गणना करना चाह रहे हैं जहां सूर्य सीधे आपके पैरों के नीचे से गुजरा है, उच्च दोपहर को चिह्नित करने के स्थानीय सम्मेलनों के लिए समायोजित किया गया है और संभावित रूप से समायोजन भी किया गया है ताकि लोगों के पास काम से घर लौटने के बाद पर्याप्त दिन की रोशनी बची रहे और अन्य राजनीतिक विचार।
सही है? वास्तव में यह एक आम समस्या है लेकिन पूरा जवाब स्थान-निर्भर है:
$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
$today_at_midnight = strtotime(date("Ymd"));
आपको वह देना चाहिए जो आप कर रहे हैं।
व्याख्या
मैंने आज की तारीख को बिना किसी समय के संदर्भ में प्राप्त करने के लिए PHP की तारीख फ़ंक्शन का उपयोग किया था, और फिर इसे 'स्ट्रिंग टू टाइम' फ़ंक्शन के लिए पास किया जो एक तिथि और समय को एक युगांतर टाइमस्टैम्प में परिवर्तित करता है। यदि इसे समय नहीं मिलता है, तो यह उस दिन के पहले सेकंड को मानता है।
संदर्भ: तिथि समारोह: http://php.net/manual/en/function.date.php
स्ट्रिंग टू टाइम: http://us2.php.net/manual/en/function.strtotime.php
strtotime()
, मन तो तारीख समारोह पर केंद्रित था। क्षमा याचना।
अधिक वस्तु तरीके से:
$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
$midnight = strtotime('midnight');
मान्य है
आप strtotime('12am')
या भी आज़मा सकते हैं
strtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]')
। मैंने आज आधी रात से पहले जोड़ना छोड़ दिया क्योंकि डिफ़ॉल्ट आज है।
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());