আজ মধ্যরাতে একটি টাইমস্ট্যাম্প পাচ্ছেন?


123

আমি আজ মধ্যরাতে পিএইচপি তে একটি টাইমস্ট্যাম্প পাওয়ার বিষয়ে কীভাবে যাব। বলুন এটি সোমবার 5 পিএম এবং আমি সোমবার (আজ) মধ্যরাতে (সকাল 12 টা) টাইমস্ট্যাম্প চাই যা ইতিমধ্যে ঘটেছে।

ধন্যবাদ


মধ্যরাত সকাল নয় বা বিকাল নয়। প্রযুক্তিগতভাবে, মধ্যরাতের কোনও টাইমস্ট্যাম্প বিদ্যমান নেই।
hakre

16
@hakre আমি আপনার সাথে একমত নই মধ্যরাত্রি হ'ল এবং টাইমস্ট্যাম্প যে আকারে থাকুক না কেন, মধ্যরাতের জন্য একটি মান রয়েছে।
জি-নুগেট 21

1
যদি 00:00:00 আজ বা কাল বিবেচনা করা হয়। আজ মধ্যরাত, প্রযুক্তিবিদগতভাবে - সর্বকালের - সর্বদা আমাদের পিছনে। আপনি "আজ রাতে" এর 23:59:59 বা 00:00:00 "আজকের মধ্যরাত, যা আগামীকাল" আরও কম বেশি চান want
wesside

5
00:00:00 এর একটি সময় হবে আজকের মধ্যরাত হিসাবে যদিও এটি ইতিমধ্যে ঘটেছিল 00:00:00 পেতে বেশি সময় নেয় takes যেখানে আজ 23:59:59 হবে। আপনার কথা যদি আজকের পরিপ্রেক্ষিতে। মধ্যরাত এএম।
নাজকা

4
00:00 একটি দিনের শুরুতে মধ্যরাত, 24:00 দিনের শেষে মধ্যরাত। সরলতার জন্য, বেশিরভাগ ডিজিটাল ঘড়িগুলি 24:00 এড়িয়ে যায় - ঘোষণা করে যে মধ্যরাতটি একটি নতুন দিনের শুরু। অর্থাত ফেব্রুয়ারি 24:00 এর 8 ই ও ফেব্রুয়ারী 00:00 সময় অনুসারে একই পয়েন্ট অনুশীলন করা হয়।
জোহান

উত্তর:


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

আপনি পিএইচপি কি অফার করতে পারেন তা একবার দেখতে চাইতে পারেন: http://php.net/datetime


52
@ সামহাকাবি: এটি আরও সহজ: $timestamp = strtotime('today');মধ্যরাত। কিন্তু pssst ); প্রশ্নের উত্তর যেমন সৌন্দর্য শীতল উপরে এক
hakre

আমার আসলে আজ এবং মধ্যরাতের আজ শুরু করা দরকার। আমি আজকের শুরুটি কীভাবে জানতে পারি তার অর্থ আমি 00:00:00
শুভ কোডার

3
@ অ্যালউইন অগস্টিন: আপনার নিজের শব্দবন্ধকে আলাদা করার বিষয়টি বিবেচনা করা উচিত মধ্যরাত প্রযুক্তিগতভাবে দুই দিনের মধ্যে। সুতরাং কিছুটা আছে "আজ আর নেই"। এছাড়াও: মিডগনেট অফ টু টু (প্রতি সংজ্ঞা অনুযায়ী) আজকের শুরু (ঠিক আগে)। আপনি সম্ভবত আজ দুপুরের পরের মধ্যরাত বলতে চাইছেন ।
hakre

হ্যাঁ আসলে যা আমার প্রয়োজন তা আজকের 00:00:00 এবং আজকের 23:59:59
শুভ কোডার

2
মনে রাখবেন এটি আপনার পিএইচপি সার্ভারের টাইমজোনের মধ্যরাতের উত্পাদন করবে, ইউটিসি + 0 নয় ! ইউটিসি + 0 পেতে আপনি ব্যবহার করতে পারেন strtotime('today+00:00')
মে

73

আমার মনে হয় আপনার নতুন পিএইচপি ডেটটাইম অবজেক্টটি ব্যবহার করা উচিত কারণ স্ট্রোটোটাইম () এর 32 বিট বিধিনিষেধের বাইরে তারিখগুলি করার কোনও সমস্যা নেই। আপনি আজকের তারিখটি মধ্যরাতে কীভাবে পাবেন তা এখানে একটি উদাহরণ।

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

অথবা আপনি যদি পিএইচপি 5.4 বা তার বেশি ব্যবহার করেন তবে আপনি এটি এইভাবে করতে পারেন:

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

তারপরে আপনি echo $today->format('Y-m-d');যে বিন্যাসটি চান তা আপনার অবজেক্টের আউটপুট হিসাবে পেতে চান।

পিএইচপি ডেটটাইম অবজেক্ট


14
আমি নতুন ডেটটাইম অবজেক্টটি ব্যবহার করতেও পছন্দ করি। যদি আপনি এই উত্তরটি @ হকের সাথে মিলিত করেন তবে আপনি পান: new DateTime('today midnight')যা উদ্দেশ্যটিকে আরও স্পষ্ট করে তোলে (তবে এটি অবশ্যই স্বাদের বিষয়)।
মার্টিজন

1
আমি ORM এসকিউএল কাজ করছি এবং তুলনার জন্য আমাকে ডেটটাইম অবজেক্টটি ব্যবহার করতে হয়েছিল। আমি ঠিক এটিই খুঁজছিলাম। +1
NobleUplift

হতে পারে$today = new DateTime('today')
প্রোগজি

আপনি কার্বন ব্যবহার করছেন, যা ডেটটাইম থেকে উত্তরাধিকারসূত্রে প্রাপ্ত তাও দরকারী। সুতরাং, আপনি এটি করতে পারেন new Carbon('today midnight')এবং তারপরে আপনি পছন্দ মতো সমস্ত কার্বন স্টাফ ব্যবহার করতে পারেন ->subDays(6)। দেখুন carbon.nesbot.com
ক্রিস্টোফার কে

32 বিটের সীমাবদ্ধতা সম্পর্কিত: স্ট্রোটোটাইমের পিএইচপি ডকুমেন্টে বলা হয়েছে : "পিএইচপি-র 64-বিট সংস্করণগুলির জন্য টাইমস্ট্যাম্পের বৈধ পরিসীমা কার্যকরভাবে অসীম, কারণ 64 বিট উভয় দিকই প্রায় 293 বিলিয়ন বছর উপস্থাপন করতে পারে।" সুতরাং এটি কেবল 32 বিট পিএইচপি প্রযোজ্য।
ক্রিস্টোফার কে।


7

আপনি অতি সাম্প্রতিক আকাশের ঘটনার সময় গণনা করতে দেখছেন যেখানে সূর্যটি সরাসরি আপনার পায়ের নীচে চলে গেছে, উচ্চ দুপুর চিহ্নিত করার স্থানীয় সম্মেলনের জন্য সামঞ্জস্য করেছে এবং সম্ভাব্যভাবে সামঞ্জস্যও করছে যাতে লোকেরা কাজ থেকে বাড়ি ফিরে আসার পরে পর্যাপ্ত দিবালোক রেখে যায় এবং অন্যান্য রাজনৈতিক বিবেচনা।

ঠিক হতাশ? আসলে এটি একটি সাধারণ সমস্যা তবে পুরো উত্তরটি অবস্থান নির্ভর location

$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
hakre

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

আপনি যা পরে তা আপনাকে দেওয়া উচিত।

ব্যাখ্যা

আমি যা করেছি তা হ'ল পিএইচপি'র তারিখ ফাংশনটি সময়ের উল্লেখ ছাড়াই আজকের তারিখটি পেতে এবং তারপরে এটি 'স্ট্রিং টু টাইম' ফাংশনে পাস করুন যা একটি তারিখ এবং সময়কে একটি যুগের স্ট্যাম্পস্ট্যামে রূপান্তর করে। যদি এটি একটি সময় না পায়, এটি সেদিনের প্রথম দ্বিতীয়টি ধরে নেয়।

তথ্যসূত্র: তারিখ ফাংশন: http://php.net/manual/en/function.date.php

স্ট্রিং টু টাইম: http://us2.php.net/manual/en/function.strtotime.php


টাইমস্ট্যাম্প? এটা ঠিক একটি তারিখ।
wesside

ওপিতে কী এমন কোনও বিন্যাস চেয়েছিল? যদি তা হয় তবে আমার পোস্টটি তারা পছন্দ করতে পারে এমন ফর্ম্যাটটি ফিরিয়ে দিতে সংশোধন করে খুশি হব।
স্যামহাকাবি

সম্পূর্ণরূপে অবহেলিত strtotime(), মন তাই তারিখ ফাংশন উপর দৃষ্টি নিবদ্ধ ছিল। দুঃক্ষিত।
wesside

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

আপনি যদি কার্বন ব্যবহার করছেন তবে নিম্নলিখিতগুলি করতে পারেন। Expireএইচটিটিপি শিরোনাম সেট করতে আপনি এই তারিখটি ফর্ম্যাটও করতে পারেন ।

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

0

2020 এপ্রিল 19 আপডেট হয়েছে

কেবলমাত্র আমরা এটি করতে পারি:

$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());


প্রশ্ন পিএইচপি সম্পর্কিত। এই উত্তরটি জাভাস্ক্রিপ্টে লেখা হয়েছে
বৈদ্যুতিন কফি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.