ডেটটাইমকে স্ট্রিং পিএইচপি তে রূপান্তর করুন


225

আমি কীভাবে পিএইচপি ডেটটাইম অবজেক্টটিকে স্ট্রিংয়ে রূপান্তর করতে পারি সে সম্পর্কে আমি ইতিমধ্যে প্রচুর সাইট গবেষণা করেছি। আমি সর্বদা "স্ট্রিং টু ডেটটাইম" দেখি এবং "ডেটটাইম টু স্ট্রিং" না

পিএইচপি ডেটটাইম প্রতিধ্বনিত হতে পারে তবে আমি পিএইচপি স্ট্রিং ফাংশন দিয়ে আমার ডেটটাইম প্রসেস করতে চাই।

আমার প্রশ্ন হ'ল আমি এই জাতীয় কোড থেকে শুরু করে কীভাবে পিএইচপি ডেটটাইম অবজেক্ট তৈরি করতে পারি:

$dts = new DateTime(); //this returns the current date time
echo strlen($dts);

2
স্ট্রিং ফাংশন দিয়ে আপনি কেন আপনার ডেটটাইম প্রসেস করতে চান? তুমি অর্জন করার জন্য কি চেষ্টা করতেছ?
মিগিফ্রিডা

2
একটি ডেটটাইম বৈধকারক কিছু ধরণের? পিএইচপি
নেটোরিকা

উত্তর:


412

আপনি ক্লাসের formatপদ্ধতিটি ব্যবহার করতে পারেন DateTime:

$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');

যদি formatকোনও কারণে ব্যর্থ হয় তবে তা ফিরে আসবে FALSE। কিছু অ্যাপ্লিকেশনগুলিতে, ব্যর্থ হওয়া কেসটি হ্যান্ডেল করার জন্য এটি বোধগম্য হতে পারে:

if ($result) {
  echo $result;
} else { // format failed
  echo "Unknown Time";
}

3
+1 এটি কাজ করে। আপনি কি দয়া করে এই রূপান্তরটি করার আগে নাল (একই লাইনে) কীভাবে পরীক্ষা করবেন তাও বলতে পারেন। ধন্যবাদ!
ওয়াট

2
আরে @ ওয়াট, ভাল পয়েন্ট! কীভাবে ব্যর্থ হওয়া মামলা পরিচালিত হতে পারে তা দেখানোর জন্য আমি উদাহরণটি প্রসারিত করেছি।
rjz

3
আপনি $date->format('c')$date->format('Y-m-d H:i:s Z')$date->format('Y-m-d H:i:s T')
টাইমজোনটি

1
বিবরণটি কী ব্যবহার করে আপনাকে -> ফর্ম্যাটটি ব্যবহার করতে সক্ষম হতে হবে? এটি জেন্ডে কিছু অনুপস্থিত বলেছে
কেমিস্ট

1
আপনি $result = (new DateTime('2000-01-01'))->format('Y-m-d H:i:s');পিএইচপি 5.4 থেকে এই সংক্ষিপ্ত ফর্মটি ব্যবহার করতে পারেন । এখানে দেখুন: docs.php.net/manual/en/migration54.new-features.php ইনস্ট্যান্টেশনে ক্লাস সদস্যের অ্যাক্সেস যুক্ত করা হয়েছে, যেমন (নতুন ফু) -> বার ()।
এফফিরমিনিচ

17

সবচেয়ে সহজ উপায় আমি খুঁজে পেয়েছি:

$date   = new DateTime(); //this returns the current date time
$result = $date->format('Y-m-d-H-i-s');
echo $result . "<br>";
$krr    = explode('-', $result);
$result = implode("", $krr);
echo $result;

আমি আসা করি এটা সাহায্য করবে.



15

এর মতো date_d.phpব্যবহারের জন্য কিছু পূর্বনির্ধারিত ফর্ম্যাট রয়েছে format:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

এটি ব্যবহার করুন:

$date = new \DateTime();
$string = $date->format(DATE_RFC2822);

3
আপনি ডেটটাইম (যেমন ডেটটাইম :: আইএসও 8601) এর ধ্রুবক ব্যবহার করতে পারেন, এটি কোডটি পড়া সহজ করে তোলে।
আনহ-তুয়ান মাই

2

তালিকা ব্যবহার করে ছোট উপায়। এবং আপনি প্রতিটি তারিখের উপাদান দিয়ে যা করতে চান তা করতে পারেন।

list($day,$month,$year,$hour,$min,$sec) = explode("/",date('d/m/Y/h/i/s'));
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;

2

এটা আমার জন্য কাজ করে

$start_time   = date_create_from_format('Y-m-d H:i:s', $start_time);
$current_date = new DateTime();
$diff         = $start_time->diff($current_date);
$aa           = (string)$diff->format('%R%a');
echo gettype($aa);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.