Saya benar-benar terjebak dengan menambahkan X menit ke waktu, setelah melakukan banyak google'ing dan membaca manual PHP, saya sepertinya tidak berhasil.
Format waktu tanggal yang saya miliki adalah:
2011-11-17 05:05
: year-month-day hour:minute
Menit yang akan ditambahkan hanyalah angka antara 0 dan 59
Saya ingin hasilnya sama dengan format masukan dengan menit ditambahkan.
Bisakah seseorang memberi saya contoh kode yang berfungsi, karena upaya saya sepertinya tidak membawa saya ke mana pun?
strtotime
menghasilkan stempel waktu Unix sebagaiinteger
yang berguna jika Anda misalnya menyortir tanggal di php. TheDateTime
kelas menyediakan pilihan untuk operasi objek dan gaya prosedural. Ini lebih mudah dibaca dan juga memiliki dukungan yang lebih baik untuk menangani perbedaan antara zona waktu yang berbeda; misalnya, jika Anda memiliki proyek yang mengeluarkan tanggal untuk berbagai zona waktu berbeda yang bersumber dari contoh data yang sama.Kelas DateTime PHP memiliki metode modifikasi yang berguna yang menggunakan teks yang mudah dipahami.
$dateTime = new DateTime('2011-11-17 05:05'); $dateTime->modify('+5 minutes');
Anda juga bisa menggunakan interpolasi atau penggabungan string untuk mengatur parameternya:
$dateTime = new DateTime('2011-11-17 05:05'); $minutesToAdd = 5; $dateTime->modify("+{$minutesToAdd} minutes");
sumber
$newtimestamp = strtotime('2011-11-17 05:05 + 16 minute'); echo date('Y-m-d H:i:s', $newtimestamp);
hasilnya adalah
Demo langsung
here
Jika Anda belum terbiasa
strtotime
, sebaiknya Andaphp.net
mencari tahu tentang kekuatan hebatnya :-)sumber
Anda dapat melakukan ini dengan fungsi asli dengan mudah:
strtotime('+59 minutes', strtotime('2011-11-17 05:05'));
Saya akan merekomendasikan metode kelas DateTime, baru saja diposting oleh Tim.
sumber
Saya pikir ini akan membantu beberapa orang ketika berurusan dengan zona waktu juga. Solusi saya yang dimodifikasi didasarkan pada solusi @Tim Cooper, jawaban yang benar di atas.
$minutes_to_add = 10; $time = new DateTime(); **$time->setTimezone(new DateTimeZone('America/Toronto'));** $time->add(new DateInterval('PT' . $minutes_to_add . 'M')); $timestamp = $time->format("Y/m/d G:i:s");
Garis tebal, baris 3, adalah penjumlahan. Saya harap ini membantu beberapa orang juga.
sumber
Sedikit jawaban yang terlambat, tetapi metode yang akan saya gunakan adalah:
// Create a new \DateTime instance $date = DateTime::createFromFormat('Y-m-d H:i:s', '2015-10-26 10:00:00'); // Modify the date $date->modify('+5 minutes'); // Output echo $date->format('Y-m-d H:i:s');
Atau di PHP> = 5,4
echo (DateTime::createFromFormat('Y-m-d H:i:s', '2015-10-26 10:00:00'))->modify('+5 minutes')->format('Y-m-d H:i:s')
sumber
Saya tidak tahu mengapa pendekatan yang ditetapkan sebagai solusi tidak berhasil untuk saya. Jadi saya memposting di sini apa yang berhasil untuk saya dengan harapan dapat membantu siapa saja:
$startTime = date("Y-m-d H:i:s"); //display the starting time echo '> '.$startTime . "<br>"; //adding 2 minutes $convertedTime = date('Y-m-d H:i:s', strtotime('+2 minutes', strtotime($startTime))); //display the converted time echo '> '.$convertedTime;
sumber
Jika Anda ingin memberikan variabel yang berisi menit.
Maka saya pikir ini adalah cara yang bagus untuk mencapai ini.
$minutes = 10; $maxAge = new DateTime('2011-11-17 05:05'); $maxAge->modify("+{$minutes} minutes");
sumber
Menggunakan
strtotime("+5 minute", $date);
Contoh:
$date = "2017-06-16 08:40:00"; $date = strtotime($date); $date = strtotime("+5 minute", $date); echo date('Y-m-d H:i:s', $date);
sumber
Sebagaimana dicatat oleh Brad dan Nemoden dalam jawaban mereka di atas, strtotime () adalah fungsi yang hebat. Secara pribadi, saya menemukan Objek DateTime standar menjadi terlalu rumit untuk banyak kasus penggunaan. Saya hanya ingin menambahkan 5 menit ke waktu saat ini, misalnya.
Saya menulis fungsi yang mengembalikan tanggal sebagai string dengan beberapa parameter opsional:
1.) waktu: String | mis .: "+5 menit" (default = waktu saat ini)
2.) format: String | mis .: "Ymd H: i: s" (default = "Ymd H: i: s O")
Jelas, ini bukan metode berfitur lengkap. Hanya fungsi cepat dan sederhana untuk mengubah / memformat tanggal sekarang.
function get_date($time=null, $format='Y-m-d H:i:s O') { if(empty($time))return date($format); return date($format, strtotime($time)); } // Example #1: Return current date in default format $date = get_date(); // Example #2: Add 5 minutes to the current date $date = get_date("+5 minutes"); // Example #3: Subtract 30 days from the current date & format as 'Y-m-d H:i:s' $date = get_date("-30 days", "Y-m-d H:i:s");
sumber
Satu lagi contoh fungsi untuk melakukan ini: (mengubah format waktu dan interval sesuka Anda menurut ini untuk function.date , dan ini untuk DateInterval ):
(Saya juga telah menulis bentuk alternatif dari fungsi di bawah ini .)
// Return adjusted time. function addMinutesToTime( $dateTime, $plusMinutes ) { $dateTime = DateTime::createFromFormat( 'Y-m-d H:i', $dateTime ); $dateTime->add( new DateInterval( 'PT' . ( (integer) $plusMinutes ) . 'M' ) ); $newTime = $dateTime->format( 'Y-m-d H:i' ); return $newTime; } $adjustedTime = addMinutesToTime( '2011-11-17 05:05', 59 ); echo '<h1>Adjusted Time: ' . $adjustedTime . '</h1>' . PHP_EOL . PHP_EOL;
sumber
satu baris format waktu mysql
$mysql_date_time = (new DateTime())->modify('+15 minutes')->format("Y-m-d H:i:s");
sumber
Tanpa menggunakan variabel:
$yourDate->modify("15 minutes"); echo $yourDate->format( "Y-m-d H:i");
Dengan menggunakan variabel:
$interval= 15; $yourDate->modify("+{$interval } minutes"); echo $yourDate->format( "Y-m-d H:i");
sumber
$yourDate
? Apa jawaban ini menambahkan jawaban serupa yang diposting tahun-tahun sebelumnya?