পিএইচপি ব্যবহার করে গতকালের তারিখ কীভাবে পাবেন?


90

আমি পিএইচপি-তে নির্দিষ্ট তারিখের বিন্যাসটি ব্যবহার করে গতকাল তারিখটি পেতে চাই এটি এই ফর্ম্যাটটি:

$today = date("d.m.Y"); //15.04.2013

এটা কি সম্ভব?

মাস এবং বছর বিবেচনা করুন যদি সেগুলি পরিবর্তন করা উচিত।


4
তারিখ ("ডিএমআই", সময় () - 60 * 60 * 24);
NINCOMPOOP

তুমি কি আমার সমাধান চেষ্টা করেছ? এটি পরিবর্তিত
ফ্যাবিও

নিখুঁত মুহূর্ত যখন আমার উপরের "নুব" ব্যবহারকারীর নামটি তার মন্তব্যে একটি ভাল অর্থ যুক্ত করে :)
এসটিটি এলসিইউ

উত্তর:


262

এই নাও

date('d.m.Y',strtotime("-1 days"));

মাস পরিবর্তন হলে এটি কাজ করবে


একটি ছোট্ট নিট-পিক: আপনার সময়টি ডিএসটি-পরিবর্তনের সময়টি ছড়িয়ে দিলে মধ্যরাতের কাছে আপনার ক্রিয়াটি সমস্যার মধ্যে পড়ে। স্পষ্টত দুপুরের ওপারে সেখানে সহায়তা করে।
উত্সাহক

4
ভুল । ডিএসটি সম্পর্কে 3 টি বিষয়: 1 এটি সার্ভারের সময়ের উপর নির্ভর করে, যদি সার্ভারের সঠিক সময় অঞ্চল থাকে তবে এটি আমার ফাংশনকে প্রভাবিত করবে না। 2 গোটা বিশ্ব ডিএসটি দ্বারা প্রভাবিত হয় না, এমন জায়গা রয়েছে যা এটি ব্যবহার করে না। 3 বেশিরভাগ জায়গাগুলি দিনের প্রথম ঘন্টাগুলিতে সময় পরিবর্তন করতে ব্যবহার করে (যেমন 2 টা বা 3 টা) তাই এটি কোনও পরিবর্তিত দিনকে প্রভাবিত করবে না।
ফ্যাবিও

4
১. সুতরাং সেই ফাংশনটি জানে এবং যত্ন নেয় যে কোনও দিন 24 ঘন্টা ব্যতীত অন্য কোনও দিন হতে পারে? ২. এমনকি একটি ভাঙা ঘড়িও প্রতিদিন দু'বার ডান হয়। ৩. সঠিক ঘন্টা যা চুরি / সদৃশ হয় তা গণনার পক্ষে তেমন গুরুত্বপূর্ণ নয়।
ডিসিপ্লিকেটর

4
কোনও বুদ্ধিমান নেই 1 দিন 24 পরিবর্তে ডিএসটি সময় পরিবর্তন করে না এবং সার্ভার সময় পরিবর্তন করে 2 অনুযায়ী অবশ্যই এটি হয় তবে এটি 3 পয়েন্ট নয় এটি পরিবর্তে এটি খুব গুরুত্বপূর্ণ, আপনার ধারণাটি সঠিক হতে পারে যদি মধ্যরাতে সময় পরিবর্তন হয়, অন্যান্য ঘন্টা নয়
Fabio

7

আপনি এই দ্বারা এটি করতে পারেন

date("F j, Y", time() - 60 * 60 * 24);

অথবা দ্বারা

date("F j, Y", strtotime("yesterday"));

4
দিবালোক সঞ্চয় সহ গ্যারান্টিযুক্ত নয় ... লোকেরা আজকাল সত্যই ডেটটাইম অবজেক্ট ব্যবহার করা উচিত
মার্ক বাকের

ইউটিসি সময় পরিচালনা করে ঠিকঠাক কাজ করবে। তারিখ_দেফফল_টাইমজোন_সেট ('ইউটিসি');
প্যাট্রিক

7

ধাপ 1

আমাদের ফাংশন ডেটে ফর্ম্যাট ডেটা সেট করতে হবে (): ফাংশন ডেট () প্রদত্ত পূর্ণসংখ্যা টাইমস্ট্যাম্প ব্যবহার করে প্রদত্ত ফর্ম্যাট অনুযায়ী স্ট্রিং ফর্ম্যাট করে অথবা বর্তমান সময় ifno টাইমস্ট্যাম্প দেওয়া হয় returns অন্য কথায়, টাইমস্ট্যাম্পিস optionচ্ছিক এবং সময় () এর মানকে ছাড়ায়।

<?php
echo date("F j, Y");
?>

ফলাফল: ৩০ শে মার্চ, ২০১০

ধাপ ২

"গতকাল" তারিখের জন্য পিএইচপি ফাংশন এমকিটাইম () ব্যবহার করুন: ফাংশন এমকেটাইম () প্রদত্ত তত্ত্বগুলির সাথে সম্পর্কিত ইউনিক্স টাইমস্ট্যাম্পটি প্রদান করে। এই টাইমস্ট্যাম্পটি দীর্ঘ দৈর্ঘ্যের পূর্ণসংখ্যা যা ইউনিক্স ইপোক (জানুয়ারী 1 1970: 00:00:00 জিএমটি) এবং নির্দিষ্ট সময়কালের মধ্যে সেকেন্ডের সংখ্যার মধ্যে থাকে। ডান থেকে বাম দিক থেকে তর্কগুলি ছেড়ে যেতে পারে; বাদ দেওয়া কোনও আর্গুমেন্ট স্থানীয় তারিখ এবং সময় অনুযায়ী বর্তমান মানকে সেট করা হবে।

<?php
echo mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
?>

ফলাফল: 1269820800

ধাপ 3

এখন সমস্ত মার্জ করুন এবং এটি দেখুন:

<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>

ফলাফল: ২৯ শে মার্চ, ২০১০

একইভাবে পরিচালনা করা, সময় ঘন্টা ফিরে পাওয়া সম্ভব।

<?php
$yesterday = date("H:i:s",mktime(date("H"), 0, 0, date("m"),date("d"), date("Y")));
echo $yesterday;
?>

ফলাফল: 20:00:00

বা 7 দিন আগে:

<?php
$week = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-7,date("Y")));
echo $week;
?>

ফলাফল: 2010-03-23


7

এটা চেষ্টা কর

        $tz    = new DateTimeZone('Your Time Zone');
        $date  = new DateTime($today,$tz);
        $interval = new DateInterval('P1D');
        $date->sub($interval); 

        echo $date->format('d.m.y');

        ?>           

এই php.net/manual/en/book.datetime.php 'দেখুন ... এটি মাসের পরিবর্তনের সাথেও কাজ করবে
সর্বদা শিখুন

9
নতুন তারিখটাইম ('গতকাল')
ভার্জিলি গার্সিয়া

$ গতকাল = নতুন ডেটটাইম ('গতকাল', নতুন ডেটটাইমজোন ('আপনার সময় অঞ্চল'));
মিরালং

এই কোড-উত্তর সহ কিছুটা ব্যাখ্যা ভাল লাগবে।
মিকম্যাকুসা


3

আপনি যদি আপনার পিএইচপি অ্যাপে টাইমজোনটি সংজ্ঞায়িত করেন (যেমন আপনার উচিত), যা আপনি এইভাবে করতে পারেন:

date_default_timezone_set('Europe/Paris');

তাহলে এটি এতটা সহজ:

$yesterday = new DateTime('yesterday'); // will use our default timezone, Paris
echo $yesterday->format('Y-m-d'); // or whatever format you want

(আপনি আপনার ডিফল্ট টাইমজোন সংরক্ষণ করতে একটি ধ্রুবক বা পরিবেশের পরিবর্তনশীল সংজ্ঞায়িত করতে চাইতে পারেন))


2

এটা চেষ্টা কর

<?php
$yesterday = date(“d.m.Y”, time()-86400);
echo $yesterday;

4
দিবালোক সংরক্ষণের কারণে কোনও দিন সর্বদা 86400 সেকেন্ড থাকে না! সুতরাং এই গণনাটি বছরে দুবার ভুল হতে পারে!
srbot

... এবং লিপ সেকেন্ডের কারণে।
সেবাস্তিয়ান মাচ

1

সঠিক সময় নির্ধারণের সাথে ডেটটাইমের জন্য আর একটি ওওপি পদ্ধতি:

$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London'));
echo $yesterday->format('Y-m-d H:i:s') . "\n";

0

আপনি এটি কার্বন গ্রন্থাগার ব্যবহার করেও করতে পারেন :

Carbon::yesterday()->format('d.m.Y');         // '26.03.2019'

অন্যান্য ফর্ম্যাটে:

Carbon::yesterday()->toDateString();          // '2019-03-26'
Carbon::yesterday()->toDateTimeString();      // '2019-03-26 00:00:00'

Carbon::yesterday()->toFormattedDateString(); // 'Mar 26, 2019'
Carbon::yesterday()->toDayDateTimeString();   // 'Tue, Mar 26, 2019 12:00 AM'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.