এমডিওয়াই এইচ: তারিখের ফর্ম্যাটটি পাওয়া যাচ্ছে: মিল: সেকেন্ড থেকে su


117

আমি মিলিসেকেন্ড থেকে মাইক্রোসেকেন্ড সহ একটি ফর্ম্যাট তারিখ পাওয়ার চেষ্টা করছি।

একমাত্র সমস্যা হ'ল আমি 000000 পাচ্ছি

date("m-d-Y H:i:s.u", $milliseconds/1000);

প্রাক্তন। 07-28-2013 11: 26: 14.000000


6
এটি অদ্ভুত যে প্রশ্নটি মিলিসেকেন্ডগুলিকে রূপান্তর করতে বলেছে , তবে মাইক্রোসেকেন্ডগুলি কীভাবে রূপান্তর করা যায় তা প্রত্যেকেই উত্তর দেয়। আমি জানি যে আপনি উভয়ের মধ্যে রূপান্তর করতে পারেন তবে পিএইচপি ডক বা অন্য কোথাও অসম্পৃক্ত কোডটি অনুলিপি করার পরিবর্তে প্রশ্নের উত্তর দেওয়া ভাল হবে ering
লরেন্ট

আমি জানি এটি কিছুক্ষণ হয়ে গেছে, তবে বামোসজার উত্তরটি আমি এখানে সবচেয়ে ভাল খুঁজে পেয়েছি
পিয়াইন

উত্তর:


122

php.net বলেছেন:

মাইক্রোসেকেন্ডস (পিএইচপি 5.2.2 এ যুক্ত)। নোটটি date()সর্বদা উত্পন্ন হবে 000000যেহেতু এটি একটি পূর্ণসংখ্যার পরামিতি নেয়, অন্যদিকে DateTime::format()মাইক্রোসেকেন্ডগুলি DateTimeতৈরি করা হলে মাইক্রোসেকেন্ডগুলিকে সমর্থন করে ।

সুতরাং সহজ হিসাবে ব্যবহার করুন:

$micro_date = microtime();
$date_array = explode(" ",$micro_date);
$date = date("Y-m-d H:i:s",$date_array[1]);
echo "Date: $date:" . $date_array[0]."<br>";

প্রস্তাবিত এবং dateTime()রেফারেন্স থেকে শ্রেণি ব্যবহার :

$t = microtime(true);
$micro = sprintf("%06d",($t - floor($t)) * 1000000);
$d = new DateTime( date('Y-m-d H:i:s.'.$micro, $t) );

print $d->format("Y-m-d H:i:s.u"); // note at point on "u"

নোটটি uমাইক্রোসেকেন্ডস (1 সেকেন্ড = 1000000 µ এস)।

পিএইচপি.এন.এর আরও একটি উদাহরণ :

$d2=new DateTime("2012-07-08 11:14:15.889342");

পিএইচপিএন - dateTime()তে রেফারেন্স

আমি প্রশ্নের উত্তরটি সংক্ষিপ্ত হিসাবে লিখেছি এবং লেখককে সহজীকরণ করেছি। লেখকের কাছে আরও তথ্যের জন্য দয়া করে দেখুন: তারিখের ফর্ম্যাট এমডিওয়াই এইচ: আই: সা মিলিসেকেন্ড থেকে


4
এটি পড়া এবং বুঝতে সহজ হওয়ায় আমি সাধারণত দ্বিতীয় ফর্মটি বেছে নিই। অতিরিক্তভাবে, তারিখটাইম তারিখ / সময় ফাংশনের চেয়ে অনেক বেশি নমনীয় এবং শক্তিশালী। মাইক্রোসেকেন্ড হ্যান্ডলিং একটি কেস-ইন-পয়েন্ট।
হারবার্ট

আমি হারবার্টের সাথে একমত @ স্লিক, এটি সেরা উত্তর :)
মার্কো

3
@ জিও এবং অ্যালবান্ডি কি এমন হতে পারে আপনি পিএইচপি <5.2.2 সহ একটি মেশিনে এটি চেষ্টা করছেন? পিএইচপি 5.4.39 এটি পুরোপুরি সূক্ষ্মভাবে চালায় ...
রিচার্ডবার্নার্ডস

এটা কি সহজ হবে না? তারিখ ('এমডিওয়াই এইচ: আই: এস')। (অন্তর্) মাইক্রোটাইম (সত্য);
অনন্ত

@ অন্যদিকে, এটি সত্যিই বেশ সহজ হবে। তবে ভুল। ;) আপনি সেখানে যা পাবেন তা সেকেন্ডের মধ্যে কেবলমাত্র মহাকাব্য। (দুর্ভাগ্যক্রমে, microtime(false)
কোনওটির

138

আপনি সহজেই ইনপুট ফর্ম্যাট দিয়ে এটি করতে পারেন U.u

$now = DateTime::createFromFormat('U.u', microtime(true));
echo $now->format("m-d-Y H:i:s.u");

এটি নিম্নলিখিত আউটপুট উত্পাদন করে:

04-13-2015 05:56:22.082300

তারিখের ফর্ম্যাটগুলির জন্য পিএইচপি ম্যানুয়াল পৃষ্ঠা থেকে:

  • ইউ = ইউনিক্স পর্বের পর থেকে সেকেন্ড
  • u = মাইক্রোসেকেন্ডস

http://php.net/manual/en/function.date.php


আমার মূল উত্তরের একটি ত্রুটি চিহ্নিত করার জন্য গিগসিকে ধন্যবাদ, number_format()লাইনে যুক্ত করা ঠিক দ্বিতীয়টির ক্ষেত্রে ঠিক করা উচিত। খুব খারাপ এটি আর তেমন মার্জিত মনে হয় না ...

$now = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''));

http://php.net/manual/en/function.number-format.php


ডেভের প্রতিক্রিয়াতে সময় অঞ্চলগুলির একটি নোট।

সাধারণত কোনওটি নির্দিষ্ট না করা থাকলে createFromFormat()পদ্ধতিটি স্থানীয় সময় অঞ্চল ব্যবহার করবে।

http://php.net/manual/en/datetime.createfromformat.php

তবে, এখানে বর্ণিত কৌশলটি ডেটটাইম অবজেক্টটি ব্যবহার করে আরম্ভ করছে microtime() যা ইউনিক্স ইপোক (01 জানুয়ারী 1970: 00:00:00 জিএমটি) এর পরে কেটে যাওয়া সেকেন্ডের সংখ্যাটি দেয়।

http://php.net/manual/en/function.microtime.php

এর অর্থ হ'ল ডেটটাইম অবজেক্টটি ইউটিসি-তে স্পষ্টভাবে আরম্ভ করা হয়েছে, যা সার্ভারের অভ্যন্তরীণ কাজের জন্য ঠিক আছে যা কেবল সময় কাটানো সময় ট্র্যাক করতে চায়।

আপনার যদি কোনও নির্দিষ্ট সময় অঞ্চলের জন্য সময় প্রদর্শন করতে হয় তবে আপনাকে সে অনুযায়ী সেট করতে হবে। তবে, উপরোক্ত কারণগুলির কারণ হিসাবে এটি সূচনা ( তৃতীয় প্যারামিটার ব্যবহার না করা createFromFormat()) পরে পৃথক পদক্ষেপ হিসাবে করা উচিত ।

setTimeZone()পদ্ধতি এই প্রয়োজনীয়তা সম্পন্ন করার জন্য ব্যবহার করা যাবে।

http://php.net/manual/en/datetime.settimezone.php

উদাহরণ হিসাবে:

$now = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''));
echo $now->format("m-d-Y H:i:s.u") . '<br>';

$local = $now->setTimeZone(new DateTimeZone('Australia/Canberra'));
echo $local->format("m-d-Y H:i:s.u") . '<br>';

নিম্নলিখিত আউটপুট উত্পাদন করে:

10-29-2015 00:40:09.433818
10-29-2015 11:40:09.433818

মনে রাখবেন যে আপনি যদি mysql এ ইনপুট করতে চান তবে সময় বিন্যাসটি হওয়া দরকার:

format("Y-m-d H:i:s.u")

19
দ্রষ্টব্য: যথাযথ দ্বিতীয়টিতে চালানো DateTime::createFromFormat('U.u', microtime(true));হলে মিথ্যা ফিরে আসবে microtime(true)। এটি '1438616239.000000' এর পরিবর্তে '1438616239' দেয়।
গিগসি

1
দুর্দান্ত সমাধান, আপনাকে ধন্যবাদ। মনে হচ্ছে আমি তৈরি করার আমার স্থানীয় সময়টি হারাচ্ছি $ এখন মাইক্রোটাইম থেকে। কোন ধারণা?
দাভ

1
@ দাও আমি সময় অঞ্চলগুলিতে কিছু তথ্য যুক্ত করেছি, আমি আশা করি আপনার পরে যা ছিল।
আর্চোডমোনকি

1
number_formatসর্বদাই প্রয়োজনীয়, এমনকি এটি সঠিক সেকেন্ড নয়। অন্যথায় আপনি precisionপিএইচপি কনফিগারেশন বিকল্পের ("প্রদর্শনের জন্য") রহমতে রয়েছেন , যা পিএইচপি 7.0 হিসাবে পূর্বনির্ধারিতভাবে যথাযথভাবে ক্ষতি হ্রাসকারী (মাইক্রোসেকেন্ড পর্যন্ত সঠিক নয়) হিসাবে যথেষ্ট নয়।
তেওহ হান হুই

1
সর্বদা স্ট্যাকওভারফ্লোতে স্ক্রোল করুন
tom10271

15

এখানে একটি সামান্য খাটো পদ্ধতির। উচ্চ-নির্ভুলতার সংখ্যাসূচক তারিখ / সময় তৈরির জন্য কাজ করার পরিবর্তে, আমি মাইক্রোসেকেন্ড মানটিকে একটি স্ট্রিংয়ে রূপান্তর করি, মুছে ফেলি 0এবং তারিখ / সময় স্ট্রিংয়ের শেষে যুক্ত করি। আমি স্ট্রিংয়ের দৈর্ঘ্যের প্যারামিটারটি সামঞ্জস্য করে দশমিকের সংখ্যা সহজেই ছাঁটাতে পারি; এখানে আমি 4মিলিসেকেন্ডগুলি পেতে ব্যবহার করি তবে আপনি 7মাইক্রোসেকেন্ডগুলি পেতে ব্যবহার করতে পারেন।

$t = explode(" ",microtime());
echo date("m-d-y H:i:s",$t[1]).substr((string)$t[0],1,4);

একটি মাইক্রোটাইম () মানের জন্য 0.98236000 1407400573, এটি ফিরে আসে 08-07-14 01:08:13.982


9

আমি ব্যবহার করছি

echo date("Y-m-d H:i:s.").gettimeofday()["usec"];

output: 2017-09-05 17:04:57.555036

6
echo date('m-d-Y H:i:s').substr(fmod(microtime(true), 1), 1);

উদাহরণ আউটপুট:

02-06-2019 16:45:03.53811192512512

আপনার যদি দশমিক স্থানের সংখ্যা সীমাবদ্ধ করার প্রয়োজন হয় তবে নীচের লাইনটি (ক্রেডিট মিগ্লুট) একটি ভাল বিকল্প হবে। (নীচের কোড সহ, 6 টি দশমিক স্থানের সংখ্যা সীমাবদ্ধ করে 6)

echo date('m-d-Y H:i:').sprintf('%09.6f', date('s')+fmod(microtime(true), 1));

উদাহরণ আউটপুট:

02-11-2019 15:33:03.624493

আপনি সুনির্দিষ্টতা এবং সেকেন্ডের জন্য শূন্যস্থানটি মিস করেছেন। সুতরাং সঠিক সংস্করণ হওয়া উচিত echo date('m-d-Y H:i:').sprintf('%09.6f', date('s')+fmod(microtime(true), 1));। ব্যাখ্যা কেন আমরা প্রয়োজন 09: stackoverflow.com/a/28739819/318765
mgutt

আপনি আবার নির্ভুলতাটি মিস করেছেন;)echo date('H:i:s').substr(fmod(microtime(true), 1), 1, 7);
মিগ্লুট

তবে সাবধান, substr() গোল হয় না। এবং এর সাথে সংমিশ্রণে round()পিছনের শূন্যগুলি কেটে ফেলবে: stackoverflow.com/questions/7493305/… আমার প্রস্তাব দেওয়ার কারণটি তা স্থির করে sprintf()
মিগ্লুট

@mgutt প্রথম সংখ্যাটি কখন শূন্য হবে না? মূলত যা প্রয়োজন তা হ'ল fmod থেকে ১ টি দ্বারা বাকীটি পাওয়ার সময় সর্বদা উপস্থিত শূন্যটি অপসারণ করা হয় question প্রশ্নটি মাইক্রোসেকেন্ডগুলির জন্য জিজ্ঞাসা করে তবে সেকেন্ডের দশমিক স্থানের আকারে। দশমিক স্থানের সংখ্যা সীমাবদ্ধ করার কোনও কারণ নেই। আরও দশমিক স্থানগুলি আরও ভাল নির্ভুলতা।
ghbarratt

@ এমগুট আমি আমার জবাবের জন্য আপনার প্রথম প্রস্তাবিত বিকল্প যুক্ত করেছি, ব্যাখ্যা করে যে প্রয়োজন হলে দশমিক জায়গাগুলির সংখ্যা সীমাবদ্ধ করার এটি একটি ভাল উপায়
gbarratt

3

আপনি যদি (new Date()).toISOString()কোনও কারণে জাভাস্ক্রিপ্টের মতো কোনও তারিখ ফর্ম্যাট করতে চান তবে এইভাবে আপনি পিএইচপি তে এটি করতে পারেন:

$now = microtime(true);
gmdate('Y-m-d\TH:i:s', $now).sprintf('.%03dZ',round(($now-floor($now))*1000));

নমুনা আউটপুট:

2016-04-27T18:25:56.696Z

কেবলমাত্র প্রমাণ করতে যে পুরো সংখ্যাটি বিয়োগ করা দশমিক অংশের যথার্থতা হ্রাস করে না:

>>> number_format(123.01234567890123456789,25)
=> "123.0123456789012408307826263"
>>> number_format(123.01234567890123456789-123,25)
=> "0.0123456789012408307826263"

পিএইচপি করেনি দশমিক স্থান বৃত্তাকার, তা সবই তাদের উভয় ক্ষেত্রেই একই ভাবে বৃত্তাকার।


1
না। ভাসমান পয়েন্ট নম্বরটিতে গণিত ব্যবহার করবেন না, এটি ভুল। এছাড়াও বেশ কয়েকটি ফাংশন কল করার সময় নষ্ট করবেন না। বিন্যাসিত তারিখটি তিন দশমিক জায়গায় ছাঁটাই করতে কেবল সাবস্ট্রাস্ট () ব্যবহার করুন।
এলএস

@ এলএস ট্রানকাটিং 3 য় দশমিকের সাথে মিলবে না যা সম্ভবত আরও ভুল c যতক্ষণ না আপনি সত্যিকারের ক্ষুদ্রতর সূক্ষ্ম স্থানে প্রবেশ করেন ততক্ষণ পর্যন্ত ফ্লোটগুলি ভেঙ্গে যায় না; 3 দশমিক স্থান ভাল হতে হবে। প্রকৃতপক্ষে, আমি মনে করি না যে আমি মোটেও নির্ভুলতা পরিবর্তন করছি, ভাসমানগুলি আপনি যতটা কাছাকাছি পাবেন 0 আরও নিখুঁত হয়ে উঠবে পুরো সংখ্যাটি বিয়োগ করলে দশমিক স্থানগুলিকে আফ্রিকের পরিবর্তন করা উচিত নয়।
এমপেন

কি হবে date('Y-m-d\TH:i:s', $time / 1000) . sprintf('.%03dZ', substr($time, 10));?
F8ER

@ F8ER যদি আপনার $timeইতিমধ্যে মিলিসেকেন্ডে থাকে তবে হ্যাঁ, এটি প্রযুক্তিগতভাবে কাজ করবে। ভালবেসো না substrহ্যাক, কিন্তু আমি এটা 2001 এবং 2286. মধ্যে তারিখগুলি জন্য কাজ করবে অনুমান
mpen

হ্যাঁ, $timeএমএস, তবে কী 2286, আমি কেন এমনটি ভাবতে চাইছি এবং কীভাবে এড়ানো সম্ভব হবে?
F8ER

3

এটি আর্ককোডমোনকি-র উত্তরের ভিত্তিতে তৈরি।

তবে কেবল সরলীকৃত, আপনি যদি এমন কিছু চান যা দ্রুত কাজ করে।

function DateTime_us_utc(){
    return DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''));
}
function DateTime_us(){
    $now = DateTime_us_utc();
    return $now->setTimeZone(new DateTimeZone(date_default_timezone_get()));
}

আমার জন্য তাই

$now = DateTime_us();
$now->format("m-d-Y H:i:s.u");

3

এখানে আরও একটি পদ্ধতি যা আমি খানিকটা মার্জিত / সাধারণ বলে মনে করি:

echo date('Y-m-d-H:i:s.').preg_replace("/^.*\./i","", microtime(true));

1
// Procedural
$fineStamp = date('Y-m-d\TH:i:s') . substr(microtime(), 1, 9);
echo $fineStamp . PHP_EOL;

// Object-oriented (if you must). Still relies on $fineStamp though :-\
$d = new DateTime($fineStamp);
echo $d->format('Y-m-d\TH:i:s.u') . PHP_EOL;

1

পিএইচপি 7.1 হিসাবে আপনি কেবল এটি করতে পারেন:

$date = new DateTime( "NOW" );
echo $date->format( "m-d-Y H:i:s.u" );

এটি প্রদর্শিত হবে:

04-11-2018 10:54:01.321688

0

ডকুমেন্টেশন নিম্নলিখিত বলে:

মাইক্রোসেকেন্ডস (পিএইচপি 5.2.2 এ যুক্ত)। মনে রাখবেন যে তারিখটি () সর্বদা 000000 উত্পাদন করে যেহেতু এটি একটি পূর্ণসংখ্যার পরামিতি নেয়, অন্যদিকে ডেটটাইম :: ফর্ম্যাট () মাইক্রোসেকেন্ডগুলিকে সমর্থন করে।

অর্থাৎ এর পরিবর্তে ডেটটাইম ব্যবহার করুন।


6
এটা কাজ করে না! তারিখ_ফর্ম্যাট (নতুন তারিখটাইম (), 'আপনি') শূন্য দেয়: phpfiddle.org/lite/code/ggh-mvz
জোনিস এলমারিস

হ্যা উপরের উত্তর অনুসারে (এবং আমার পরীক্ষাগুলি) আপনার new DateTime()জন্যও 0000 ফেরত দেবে। আপনি যদি এটি ইনস্ট্যান্ট করার সময় কোনও মাইক্রোসেকেন্ড-নির্ভুলতার সময় সরবরাহ করেন তবে এটি ঠিক আছে।
স্কিপাইলট

@ স্কিপাইলট ঠিক আছে, তাহলে আপনি কীভাবে এটি করেন?
জিও

@ জিও গৃহীত উত্তর দেখুন। new DateTime( 'Y-m-d H:i:s.'.$micro);
স্কিপাইলট

0

পিএইচপি 7.0+ সহ এখন এখানে আপনি নিম্নলিখিতটি করতে পারেন:

$dateString = substr($millseconds_go_here,0,10);
$drawDate = new \DateTime(Date('Y-m-d H:i',$dateString));
$drawDate->setTimezone(new \DateTimeZone('UTC'));

এটি ক্রমে নিম্নলিখিতটি করে:

  1. স্ট্রিং থেকে শেষ 4 জিরো ছাঁটাই যাতে Date()তারিখটি পরিচালনা করতে পারে।
  2. ডেটটাইম বুঝতে পারে এমন একটি তারিখের সময় স্ট্রিংয়ে মিলিসেকেন্ডগুলিকে ফর্ম্যাট করার জন্য তারিখ ব্যবহার করে।
  3. DateTime()এরপরে আপনি যে টাইম জোনটিতে date_default_timezone_set("Timezone");রয়েছেন তা সংশোধন করার অনুমতি দিতে পারে তবে আপনি DateTime()ফাংশন এবং ক্লাস ব্যবহার করার আগে সেটি সেট হয়ে গেছে তা নিশ্চিত করুন ।
  4. আপনার ক্লাসে কনস্ট্রাক্টর ব্যবহার করা ভাল অনুশীলন যখন DateTime()ক্লাস বা ফাংশন ব্যবহৃত হয় তখন আপনার সঠিক টাইমজোনটি আপনার সঠিক সময়টিতে নিশ্চিত হয়।

0

আপনি যদি কার্বন ব্যবহার করছেন, আপনি সংজ্ঞায়িত স্পেস "RFC3339_EXTENDED" ব্যবহার করতে পারেন। বা এটি কাস্টমাইজ করুন।

Carbon::RFC3339_EXTENDED = 'Y-m-d\TH:i:s.vP';

0

@ আরককোডমোনকি উত্তরের ভিত্তিতে।

আপনার যদি আপনার declare(strict_types=1)কাছে থাকে তবে স্ট্রিংয়ে দ্বিতীয় যুক্তিটি castালাই করতে হবে

এখানে চিত্র বর্ণনা লিখুন


0

আমি কয়েকটি ভিন্ন উপায়ে বেঞ্চ করেছি:

1) মাইক্রোটাইম + এসস্কানফ + তারিখ:

sscanf(microtime(), '0.%6s00 %s', $usec, $sec);
$date = date('Y-m-d H:i:s.', $sec) . $usec;

আমি নিশ্চিত নই মাইক্রোটাইম () কেন মাইক্রোসেকেন্ড অংশের জন্য 10 টি চর (0.dddddd00) ফেরায় তবে কেউ আমাকে বলতে পারে?

$start_ts = microtime(true); for($i = 0; $i < 10000000; $i++) { sscanf(microtime(), '0.%6s00 %s', $usec, $sec); $date = date('Y-m-d H:i:s.', $sec) . $usec; } var_dump((microtime(true) - $start_ts)*1000 . ' ms');
string(18) "22372.335910797 ms" // macOS PHP 5.6.30
string(18) "16772.964000702 ms" // Linux PHP 5.4.16
string(18) "10382.229089737 ms" // Linux PHP 7.3.11 (same linux box as above)

2) ডেটটাইম :: ক্রিয়েটফর্মফর্ম্যাট + ডেটটাইম-> ফর্ম্যাট:

$now = new DateTime('NOW');
$date = $now->format('Y-m-d H:i:s.u');

পিএইচপি 5.x এ কাজ করছে না ...

$start_ts = microtime(true); for($i = 0; $i < 10000000; $i++) { $now = new DateTime('NOW'); $date = $now->format('Y-m-d H:i:s.u'); } var_dump((microtime(true) - $start_ts)*1000 . ' ms');
string(18) "45801.825046539 ms" // macOS PHP 5.6.30 (ms not working)
string(18) "21180.155038834 ms" // Linux PHP 5.4.16 (ms not working)
string(18) "11879.796028137 ms" // Linux PHP 7.3.11 (same linux box as above)

3) getTimeofday + তারিখ:

$time = gettimeofday();
$date = date('Y-m-d H:i:s.', $time['sec']) . $time['usec'];

-

$start_ts = microtime(true); for($i = 0; $i < 10000000; $i++) { $time = gettimeofday(); $date = date('Y-m-d H:i:s.', $time['sec']) . $time['usec']; } var_dump((microtime(true) - $start_ts)*1000 . ' ms');
string(18) "23706.788063049 ms" // macOS PHP 5.6.30
string(18) "14984.534025192 ms" // Linux PHP 5.4.16
string(18) "7799.1390228271 ms" // Linux PHP 7.3.11 (same linux box as above)

4) মাইক্রোটাইম + সংখ্যা_ ফর্ম্যাট + তারিখটাইম :: তৈরি করুনফর্মফর্ম্যাট + তারিখটাইম-> ফর্ম্যাট:

$now = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''));
$date = $now->format('Y-m-d H:i:s.u');

-

$start_ts = microtime(true); for($i = 0; $i < 10000000; $i++) { $now = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', '')); $date = $now->format('Y-m-d H:i:s.u'); } var_dump((microtime(true) - $start_ts)*1000 . ' ms');
string(18) "83326.496124268 ms" // macOS PHP 5.6.30
string(18) "61982.603788376 ms" // Linux PHP 5.4.16
string(16) "19107.1870327 ms" // Linux PHP 7.3.11 (same linux box as above)

5) মাইক্রোটাইম + স্প্রিন্টফ + ডেটটাইম :: ক্রিয়েটফর্মফর্ম্যাট + ডেটটাইম-> ফর্ম্যাট:

$now = DateTime::createFromFormat('U.u', sprintf('%.6f', microtime(true)));
$date = $now->format('Y-m-d H:i:s.u');

-

$start_ts = microtime(true); for($i = 0; $i < 10000000; $i++) { $now = DateTime::createFromFormat('U.u', sprintf('%.6f', microtime(true))); $date = $now->format('Y-m-d H:i:s.u'); } var_dump((microtime(true) - $start_ts)*1000 . ' ms');
string(18) "79387.331962585 ms" // macOS PHP 5.6.30
string(18) "60734.437942505 ms" // Linux PHP 5.4.16
string(18) "18594.941139221 ms" // Linux PHP 7.3.11 (same linux box as above)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.