<form> <div class="form-row"> <div class="form-group"> <label>Başlama Tarihi</label> <input name="izinbaslamatarihi" type="date" class="form-control" placeholder="Başlama Tarihi" required> </div> <div class="form-group"> <label>Bitiş Tarihi</label> <input name="izinbitistarihi" type="date" class="form-control" placeholder="Bitiş Tarihi" required> </div> <div class="form-group"> <label>Toplam Süre (Gün)</label> <input name="toplamsuregun" type="text" class="form-control" placeholder="Toplam Gün" required> </div> </div> </form>
PHP & MYSQL - İki Tarih Arasındaki Farkı Hesaplama
7
●146
- 18-09-2024, 11:41:02Arkadaşlar PHP formumda 2 adet tarih ve 1 adet input text' im var. Seçilen 2 adet tarihin arasındaki gün farkını hesaplayarak input text' e yazdırmam mümkün müdür?
- 18-09-2024, 11:42:45Javascript ile
<form id="dateForm"> <div class="form-row"> <div class="form-group"> <label>Başlama Tarihi</label> <input id="izinbaslamatarihi" name="izinbaslamatarihi" type="date" class="form-control" placeholder="Başlama Tarihi" required> </div> <div class="form-group"> <label>Bitiş Tarihi</label> <input id="izinbitistarihi" name="izinbitistarihi" type="date" class="form-control" placeholder="Bitiş Tarihi" required> </div> <div class="form-group"> <label>Toplam Süre (Gün)</label> <input id="toplamsuregun" name="toplamsuregun" type="text" class="form-control" placeholder="Toplam Gün" required readonly> </div> </div> <button type="submit" class="btn btn-primary">Hesapla</button> </form> <script> document.getElementById('dateForm').addEventListener('submit', function(event) { event.preventDefault(); // Formun gönderilmesini engelle var startDate = new Date(document.getElementById('izinbaslamatarihi').value); var endDate = new Date(document.getElementById('izinbitistarihi').value); if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) { alert('Tarihleri giriniz.'); return; } var timeDifference = endDate - startDate; var daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); if (daysDifference < 0) { alert('Bitiş tarihi başlangıç tarihinden önce olamaz.'); return; } document.getElementById('toplamsuregun').value = daysDifference; }); </script>php ile
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $izinbaslamatarihi = $_POST['izinbaslamatarihi']; $izinbitistarihi = $_POST['izinbitistarihi']; $startDate = new DateTime($izinbaslamatarihi); $endDate = new DateTime($izinbitistarihi); $interval = $startDate->diff($endDate); $daysDifference = $interval->days; // Eğer bitiş tarihi başlangıç tarihinden önceyse if ($startDate > $endDate) { $daysDifference = 0; echo 'Bitiş tarihi başlangıç tarihinden önce olamaz.'; } } ?> <form method="post"> <div class="form-row"> <div class="form-group"> <label>Başlama Tarihi</label> <input name="izinbaslamatarihi" type="date" class="form-control" placeholder="Başlama Tarihi" required> </div> <div class="form-group"> <label>Bitiş Tarihi</label> <input name="izinbitistarihi" type="date" class="form-control" placeholder="Bitiş Tarihi" required> </div> <div class="form-group"> <label>Toplam Süre (Gün)</label> <input name="toplamsuregun" type="text" class="form-control" placeholder="Toplam Gün" value="<?php echo isset($daysDifference) ? $daysDifference : ''; ?>" readonly> </div> </div> <button type="submit" class="btn btn-primary">Hesapla</button> </form> - 18-09-2024, 11:43:09PHP iki tarih arasındaki farkı hesaplama adlı makaleme bir göz atın hocam. İşinizi çözecektir.
- 18-09-2024, 11:53:26Anlatımınız için çok teşekkür ederim hocam, ancak formumda hali hazırda bir kaydet butonum var. Sizin iletmiş olduğunuz formdaki hesapla butonu, kaydet butonum ile çakışıyor.EvrenOnur adlı üyeden alıntı: mesajı görüntüle
- 18-09-2024, 11:54:36Bilgilendirdiğiniz için teşekkür ederim hocam, ben seçilen 2 tarih aralığını hesaplamak istediğim için makalenizde bunun tam cevabını bulamadım.eycreative adlı üyeden alıntı: mesajı görüntüle
- 18-09-2024, 12:01:41mtyuksel adlı üyeden alıntı: mesajı görüntüle
<form method="post"> <label>Başlangıç Tarihi (YYYY-MM-DD):</label> <input type="date" name="startDate" required><br><br> <label>Bitiş Tarihi (YYYY-MM-DD):</label> <input type="date" name="endingDate" required><br><br> <input type="submit" value="Hesapla"> </form><?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $startDate = $_POST['startDate']; $endingDate = $_POST['endingDate']; function dateCalc($startDate, $endingDate) { $date1 = new DateTime($startDate); $date2 = new DateTime($endingDate); $interval = $date1->diff($date2); return $interval->format('%a'); } $result = dateCalc($startDate, $endingDate); echo "<h2>Toplam Gün Sayısı: $result</h2>"; } ?>Makalemde ki fonksiyonu uyarladım buyurun deneyin. - 18-09-2024, 15:32:27Anlatımınız için çok teşekkür ederim hocam, ancak formumda hali hazırda bir kaydet butonum var. Sizin iletmiş olduğunuz formdaki hesapla butonu, kaydet butonum ile çakışıyor.eycreative adlı üyeden alıntı: mesajı görüntüle
<form> <div class="form-row"> <div class="form-group"> <label>Başlama Tarihi</label> <input name="izinbaslamatarihi" type="date" class="form-control" placeholder="Başlama Tarihi" required> </div> <div class="form-group"> <label>Bitiş Tarihi</label> <input name="izinbitistarihi" type="date" class="form-control" placeholder="Bitiş Tarihi" required> </div> <div class="form-group"> <label>Toplam Süre (Gün)</label> <input name="toplamsuregun" type="text" class="form-control" placeholder="Toplam Gün" required> </div> </div> <div class="text-center"> <button type="submit" name="kaydet" class="btn btn-primary">Kaydet</button> </div> </form>
- 18-09-2024, 15:35:47hocam butona name="kaydet" ekleyeceksiniz.
php kısmında if(isset($_POST["kaydet"])) koşulunu çalıştıracaksınız yani adı name olan bir post gelirse burda işlem yap demek oluyor.