আমি কীভাবে ডেটটাইম পিএসপি-তে আইএসও 8601 এ রূপান্তর করব


107

আমি কীভাবে আমার সময়কে 2010-12-30 23:21:46আইএসও 8601 তারিখের ফর্ম্যাটে রূপান্তর করব ? (-_-;)


4
@Gordon হ্যাঁ আমি পেয়েছিলাম সম্পর্কে 4.530 ফলাফল এবং আমি @alex থেকে উত্তর পাওয়া
ঘেউ

@ অনুগ্রহ করে 4530 ফলাফলের কোনওটিই কেন আপনার প্রশ্নের উত্তর দেয় নি দয়া করে তা চিহ্নিত করুন।
গর্ডন

4
@ গর্ডন আমি এখনও এ থেকে জে লিখতে শিখছি তবে আমি দেখতে পেলাম যে তারা আমাকে জেড থেকে এ পর্যন্ত কীভাবে লিখতে হয় তা শিখিয়েছে :)
বাহ

@ বাহ নং। তারা আপনাকে শিখায় কিভাবে বর্ণমালা লিখতে হয় ($ থেকে, $ থেকে)। এগুলির প্রায় সমস্তই আপনাকে ব্যবহার করতে বলে date($format, strtotime($dateString))বা DateTimeঅবজেক্টের সমতুল্য। তারা কেবল functions ফাংশনগুলির ইনপুটটিতে পৃথক। আপনাকে যা করতে হবে তা হ'ল পিএইচপি ম্যানুয়ালের সংশোধনকারী পৃষ্ঠাগুলিতে গিয়ে ইনপুটটি কী তা সন্ধান করতে হবে।
গর্ডন

4
@ গর্ডন হ্যাঁ আপনি কি সঠিক? আমি ঠিক বর্ণমালা জানি এবং এখন মৌমাছি সময় বানান। আশা করি আমি সঠিক স্কুলে আছি
বাহ

উত্তর:


234

অবজেক্ট ওরিয়েন্টেড

এটি প্রস্তাবিত উপায়।

$datetime = new DateTime('2010-12-30 23:21:46');

echo $datetime->format(DateTime::ATOM); // Updated ISO8601

কার্যপ্রণালী

পিএইচপি এর পুরানো সংস্করণগুলির জন্য, বা যদি আপনি পদ্ধতিগত কোডের সাথে আরও স্বাচ্ছন্দ্য বোধ করেন।

echo date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'));

4
প্রশ্ন, আউটপুট 2010-12-30T23:21:46+1100কিভাবে এটি করা যায় 2010-12-30T23:21:46+11:00?
বাহ

4
@ এই চেষ্টা করুন preg_replace('/(?<=\d{2})(?=\d{2}$)/', ':', '2010-12-30T23:21:46+1100')। এটি আউটপুট 2010-12-30T23:21:46+11:00
অ্যালেক্স


12
date('c', strtotime('2010-12-30 23:21:46'))সুন্দর @ গর্ডন :)
বাহ

8
আমি নোট করব যে ব্যবহার DATE_ISO8601করে এমন একটি তারিখের স্ট্রিং তৈরি হয় যা আইএসও 8601 এর চেয়ে কিছুটা আলাদা (কোলন টিজেডে অনুপস্থিত, আইএসও 8601 আশা করে যে সমস্ত সময় কোলন ছাড়াই বা সমস্তের সাথে থাকবে, মিশ্রণ নয়) - date('c')একটি কঠোর আইএসও 8601 বৈধ তারিখ তৈরি করে - কোডটি যদি কোনও কঠোর আইএসও 8601 তারিখের সময়ের ফর্ম্যাটটি প্রত্যাশা করে তবে বাগগুলি সনাক্ত করতে অসুবিধা হতে পারে। সূত্র: en.wikipedia.org/wiki/ISO_8601
ckm

39

পিএইচপি 5 এর পরে আপনি এটি ব্যবহার করতে পারেন: echo date("c");আইএসও 8601 ফর্ম্যাট ডেটটাইম গঠন করুন।

http://ideone.com/nD7piL

মন্তব্যের জন্য নোট:

সংক্রান্ত এই , এই এক্সপ্রেশন উভয় সময় অঞ্চল জন্য বৈধ, মৌলিক বিন্যাসের আছেন: ±[hh]:[mm], ±[hh][mm], or ±[hh]

তবে মনে রাখবেন যে, + 0 X: 00 সঠিক এবং বর্ধিত ব্যবহারের জন্য + 0X00 ভুল। সুতরাং এটি ব্যবহার করা ভাল date("c")এখানে একটি অনুরূপ আলোচনা ।


4
এর সাথে সামান্য পার্থক্যটি নোট করুন DATE_ISO8601; +0X:00বনাম +0X00
জ্যাক

@ জ্যাক এর কি ডাউন-ভোটিং দরকার? একটি সামান্য পার্থক্য সাধারণত একটি খারাপ ধারণা।
rybo111

@ rybo111 এই উত্তরটি ডাউন-ভোট দেওয়ার কোনও কারণ আমি দেখতে পাচ্ছি না; প্রযুক্তিগতভাবে, উভয় 'c'এবং DATE_ISO8601বৈধ ISO8601 সময় উপস্থাপনা উত্পাদন।
জ্যাক

আমি উত্তর দিতে একটি নোট যুক্ত।
ট্রান্ট

@ জ্যাক DATE_ISO8601বৈধ ISO8601 উপস্থাপনা উত্পাদন করে না। DATE_ATOM যদিও করেছে
ক্যাপ্টেন স্পষ্টত

4

আইএসও 8601 থেকে ইউনিক্সটাইম স্ট্যাম্পে কীভাবে রূপান্তর করবেন:

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

কীভাবে ইউনিক্সটাইম স্ট্যাম্প থেকে আইএসও 8601 (টাইমজোন সার্ভার) এ রূপান্তর করবেন:

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

কীভাবে ইউনিক্সটাইম স্ট্যাম্প থেকে আইএসও 8601 (জিএমটি) এ রূপান্তর করবেন:

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

কীভাবে ইউনিক্সটাইম স্ট্যাম্প থেকে আইএসও 8601 (কাস্টম টাইমজোন) এ রূপান্তর করবেন:

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00


1

যদি আপনি তারিখ-স্থানীয় একটি মান সেট করার চেষ্টা করেন

date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46'));

//output : 2010-12-30T23:21

অনুরূপ সমাধানটি গৃহীত উত্তরের দেওয়া মন্তব্যে উল্লেখ করা হয়েছে
sushant047

0

আপনি এইভাবে চেষ্টা করতে পারেন:

$datetime = new DateTime('2010-12-30 23:21:46');

echo $datetime->format(DATE_ATOM);

এছাড়াও:

echo $datetime->format('c');
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.