Katakanlah saya memiliki tanggal dalam format berikut: 2010-12-11 (year-mon-day)
Dengan PHP, saya ingin menaikkan tanggal satu bulan, dan saya ingin tahun bertambah secara otomatis, jika perlu (yaitu bertambah dari Desember 2012 ke Januari 2013).
Salam.
Saya membutuhkan fungsi serupa, kecuali untuk siklus bulanan (plus bulan, minus 1 hari). Setelah mencari SO beberapa lama, saya dapat membuat solusi plug-n-play ini:
Contoh:
sumber
Gunakan
DateTime::add
.Saya menggunakan clone karena add memodifikasi objek asli, yang mungkin tidak diinginkan.
sumber
ini mengembalikan stempel waktu yang dapat digunakan dengan fungsi tanggal
sumber
$time
memiliki nilai awal).Ini akan mengkompensasi bulan Februari dan 31 hari bulan lainnya. Anda tentu saja dapat melakukan lebih banyak pemeriksaan untuk mendapatkan yang lebih tepat untuk format tanggal relatif 'hari ini bulan depan' (yang sayangnya tidak berfungsi, lihat di bawah), dan Anda juga dapat menggunakan DateTime.
Keduanya
DateInterval('P1M')
danstrtotime("+1 month")
pada dasarnya secara membabi buta menambahkan 31 hari terlepas dari jumlah hari di bulan berikutnya.sumber
Anda bisa menggunakan
DateTime::modify
seperti ini:Lihat dokumentasi:
http://php.net/manual/fr/datetime.modify.php
http://php.net/manual/fr/class.datetime.php
sumber
Saya menggunakan cara ini: -
sumber
Harap pertama-tama Anda mengatur format tanggal Anda seperti 12-12-2012
Setelah digunakan, fungsi ini berfungsi dengan baik;
Di sini 12-12-2012 adalah tanggal Anda dan +2 Bulan adalah kenaikan bulan;
Anda juga menambah Tahun, Tanggal
Jawabannya adalah 12-12-2013
sumber
Terima kasih Jason, kiriman Anda sangat membantu. Saya memformat ulang dan menambahkan lebih banyak komentar untuk membantu saya memahami semuanya. Jika itu membantu siapa pun, saya telah mempostingnya di sini:
sumber
Jika Anda ingin menambah hari, Anda juga bisa melakukannya
sumber
Hanya memperbarui jawaban dengan metode sederhana untuk menemukan tanggal setelah tidak ada bulan. Karena jawaban terbaik yang diberi tanda tidak memberikan solusi yang benar.
sumber
Contoh penggunaan:
sumber
Untuk siapapun yang mencari jawaban untuk format tanggal apapun.
Ubah saja format tanggal.
sumber
letakkan tanggal di kotak input lalu klik tombol dapatkan hari dari tanggal di jquery
sumber
sumber
Semua solusi yang disajikan tidak berfungsi dengan baik.
strtotime () dan DateTime :: add atau DateTime :: modifikasikan terkadang memberikan hasil yang tidak valid.
Contoh:
- 31.08.2019 + 1 bulan memberikan 01.10.2019 sebagai gantinya 30.09.2019
- 29.02.2020 + 1 tahun memberikan 01.03.2021 sebagai gantinya 28.02.2021
(diuji pada PHP 5.5, PHP 7.3)
Di bawah ini adalah fungsi saya berdasarkan ide yang diposting oleh Angelo yang memecahkan masalah:
Contoh penggunaan:
sumber