• 18-10-2024, 17:48:02
    #10
    mtyuksel adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,
    PHP form sayfamda bir input date elemanım var. Bu elemanda seçilen tarih kaydedildiğinde veritabanına AA/GG/YYYY olarak aktatırılıyor ve veritabanından bu veriyi çekmek istediğimde AA/GG/YYYY olarak çekiyor. Bunu ülkemizde kullanılan GG/AA/YYYY olarak değiştirmek istiyorum. Desteğinizi rica ederim.

    Veri Ekleme
    <div class="form-group col-md-4">
    <label>Bitiş Tarihi</label>
     <input name="bitistarihi" type="date" class="form-control"  placeholder="Bitiş Tarihi" required>
    </div>
    Veri Çekme
    <div class="form-group col-md-4">
    <label>Bitiş Tarihi</label>
    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo $vericek['bitistarihi '] ?>" type="text" name="bitistarihi ">
    </div>
    <?php
    $originalDate = $vericek['bitistarihi'];
    $newDate = DateTime::createFromFormat('m/d/Y', $originalDate)->format('d/m/Y');
    ?>
    
    <div class="form-group col-md-4">
    <label>Bitiş Tarihi</label>
    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo $newDate; ?>" type="text" name="bitistarihi">
    </div>
    Eğer veritabanında tarih formatı farklıysa (Yıl-Ay-Gün gibi ) create format fonksiyonundaki ilk parametreyi buna göre ayarlayın.
  • 18-10-2024, 17:53:55
    #11
    Çözülmüyorsa siz bir yerde yanlış yapıyorsunuz.
    İlgili kodları buraya ekleyin, gerekli düzenlemeyi yapalım.
  • 18-10-2024, 17:54:19
    #12
    PropJoe adlı üyeden alıntı: mesajı görüntüle
    <?php
    $originalDate = $vericek['bitistarihi'];
    $newDate = DateTime::createFromFormat('m/d/Y', $originalDate)->format('d/m/Y');
    ?>
    
    <div class="form-group col-md-4">
    <label>Bitiş Tarihi</label>
    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo $newDate; ?>" type="text" name="bitistarihi">
    </div>
    Eğer veritabanında tarih formatı farklıysa (Yıl-Ay-Gün gibi ) create format fonksiyonundaki ilk parametreyi buna göre ayarlayın.
    Bu kodu yazdıktan sonra form sayfası boş gözüküyor hocam, diğer elemanları da etkiliyor sanırım
  • 18-10-2024, 17:55:21
    #13
    mtyuksel adlı üyeden alıntı: mesajı görüntüle
    Bu kodu yazdıktan sonra form sayfası boş gözüküyor hocam, diğer elemanları da etkiliyor sanırım
    Paylaşmadığınız kodlar veya sayfalarda bir çakışma yapıyor olabilir, düzeltmeniz gerekiyor, veya yazılımı gönderin bakalım.
  • 18-10-2024, 18:09:07
    #14
    mtyuksel adlı üyeden alıntı: mesajı görüntüle
    Bu kodu yazdıktan sonra form sayfası boş gözüküyor hocam, diğer elemanları da etkiliyor sanırım
    PropJoe adlı üyeden alıntı: mesajı görüntüle
    Paylaşmadığınız kodlar veya sayfalarda bir çakışma yapıyor olabilir, düzeltmeniz gerekiyor, veya yazılımı gönderin bakalım.

    İlginiz için çok teşekkür ederim. Kullanmış olduğum kodlar aşağıdadır.

    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="card shadow mb-4">
                    <div class="card-header py-3">
                        <h5 class="m-0 font-weight-bold text-primary"><?php echo $vericek['adisoyadi'] ?> İzin Talebi</h5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    </div>
                    <div class="card-body">
                        <form>
                            <div class="form-row">
                                <div class="form-group col-md-6">
                                    <label>Adı Soyadı</label>
                                    <input disabled="" value="<?php echo $vericek['adisoyadi'] ?>" type="text" required class="form-control" name="adisoyadi" placeholder="Adı Soyadı">
                                </div>
                                <div class="form-group col-md-6">
                                    <label>Firma</label>
                                    <input disabled="" value="<?php echo $vericek['firma'] ?>" type="text" required class="form-control" name="firma" placeholder="Firma">
                                </div>
                            </div>
                            <div class="form-row">
                                <div class="form-group col-md-4">
                                    <label>Başlama Tarihi</label>
                                    <input class="form-control tarih" placeholder="Başlama Tarihi" required disabled="" value="<?php echo $vericek['izinbaslamatarihi'] ?>" type="text" name="izinbaslamatarihi">
                                </div>                            
                                <?php
                                $originalDate = $vericek['izinbitistarihi'];
                                $newDate = DateTime::createFromFormat('m/d/Y', $originalDate)->format('d/m/Y');
                                ?>
                                
                                <div class="form-group col-md-4">
                                <label>Bitiş Tarihi</label>
                                <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo $newDate; ?>" type="text" name="izinbitistarihi">
                                </div>
                            </div>
                            
                            <input type="hidden" name="ikizintalep_id" value="<?php echo $_POST['ikizintalep_id'] ?>">
                            
                    </form>
                </div>
            </div>
        </div>
    </div>
    </div>
  • 18-10-2024, 18:23:21
    #15
    mtyuksel adlı üyeden alıntı: mesajı görüntüle
    İlginiz için çok teşekkür ederim. Kullanmış olduğum kodlar aşağıdadır.

    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="card shadow mb-4">
                    <div class="card-header py-3">
                        <h5 class="m-0 font-weight-bold text-primary"><?php echo $vericek['adisoyadi'] ?> İzin Talebi</h5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    </div>
                    <div class="card-body">
                        <form>
                            <div class="form-row">
                                <div class="form-group col-md-6">
                                    <label>Adı Soyadı</label>
                                    <input disabled="" value="<?php echo $vericek['adisoyadi'] ?>" type="text" required class="form-control" name="adisoyadi" placeholder="Adı Soyadı">
                                </div>
                                <div class="form-group col-md-6">
                                    <label>Firma</label>
                                    <input disabled="" value="<?php echo $vericek['firma'] ?>" type="text" required class="form-control" name="firma" placeholder="Firma">
                                </div>
                            </div>
                            <div class="form-row">
                                <div class="form-group col-md-4">
                                    <label>Başlama Tarihi</label>
                                    <input class="form-control tarih" placeholder="Başlama Tarihi" required disabled="" value="<?php echo $vericek['izinbaslamatarihi'] ?>" type="text" name="izinbaslamatarihi">
                                </div>                            
                                <?php
                                $originalDate = $vericek['izinbitistarihi'];
                                $newDate = DateTime::createFromFormat('m/d/Y', $originalDate)->format('d/m/Y');
                                ?>
                                
                                <div class="form-group col-md-4">
                                <label>Bitiş Tarihi</label>
                                <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo $newDate; ?>" type="text" name="izinbitistarihi">
                                </div>
                            </div>
                            
                            <input type="hidden" name="ikizintalep_id" value="<?php echo $_POST['ikizintalep_id'] ?>">
                            
                    </form>
                </div>
            </div>
        </div>
    </div>
    </div>
    <?php
    // Hata raporlamasını açalım
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // Tarih dönüşümü için bir fonksiyon oluşturalım
    function formatDate($date, $inputFormat = 'm/d/Y', $outputFormat = 'd/m/Y') {
        try {
            $dateObj = DateTime::createFromFormat($inputFormat, $date);
            if ($dateObj === false) {
                throw new Exception("Geçersiz tarih formatı: $date");
            }
            return $dateObj->format($outputFormat);
        } catch (Exception $e) {
            error_log("Tarih dönüşüm hatası: " . $e->getMessage());
            return $date; // Hata durumunda orijinal tarihi döndür
        }
    }
    
    // Tarihleri dönüştürelim
    $baslangicTarihi = isset($vericek['izinbaslamatarihi']) ? formatDate($vericek['izinbaslamatarihi']) : '';
    $bitisTarihi = isset($vericek['izinbitistarihi']) ? formatDate($vericek['izinbitistarihi']) : '';
    ?>
    
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="card shadow mb-4">
                    <div class="card-header py-3">
                        <h5 class="m-0 font-weight-bold text-primary"><?php echo htmlspecialchars($vericek['adisoyadi'] ?? ''); ?> İzin Talebi</h5>
                    </div>
                    <div class="card-body">
                        <form>
                            <div class="form-row">
                                <div class="form-group col-md-6">
                                    <label>Adı Soyadı</label>
                                    <input disabled value="<?php echo htmlspecialchars($vericek['adisoyadi'] ?? ''); ?>" type="text" required class="form-control" name="adisoyadi" placeholder="Adı Soyadı">
                                </div>
                                <div class="form-group col-md-6">
                                    <label>Firma</label>
                                    <input disabled value="<?php echo htmlspecialchars($vericek['firma'] ?? ''); ?>" type="text" required class="form-control" name="firma" placeholder="Firma">
                                </div>
                            </div>
                            <div class="form-row">
                                <div class="form-group col-md-4">
                                    <label>Başlama Tarihi</label>
                                    <input class="form-control tarih" placeholder="Başlama Tarihi" required disabled value="<?php echo htmlspecialchars($baslangicTarihi); ?>" type="text" name="izinbaslamatarihi">
                                </div>
                                <div class="form-group col-md-4">
                                    <label>Bitiş Tarihi</label>
                                    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled value="<?php echo htmlspecialchars($bitisTarihi); ?>" type="text" name="izinbitistarihi">
                                </div>
                            </div>
                            <input type="hidden" name="ikizintalep_id" value="<?php echo htmlspecialchars($_POST['ikizintalep_id'] ?? ''); ?>">
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
    Bu kodu çalıştırın, çıkan hata kodunu yazın bakalım.
    Ayriyetten veritabanından gelen tarih formatının gerçekten 'm/d/Y' olduğundan emin olun. Eğer farklı bir format kullanılıyorsa (örneğin 'Y-m-d'), formatDate() fonksiyonunun ilk parametresini buna göre ayarlamanız gerekecektir.
  • 19-10-2024, 00:46:17
    #16
    Php'den anlamam ama html'de date olan input'da value'ya bir değer set ediyorsanız. YYYY-MM-DD olmak zorunda browser dili ne ise öyle gösterir yani ingilizce browser'da veya html lang'da farklı türkçede farklı ama sizin set value'nuz değişmez

    Aşağıdakini deneyin isterseniz.

    <div class="form-group col-md-4">
    <label>Bitiş Tarihi</label>
    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo date('Y-m-d', strtotime($vericek['bitistarihi'])); ?>" type="date" name="bitistarihi">
    </div>
    • mtyuksel
    mtyuksel bunu beğendi.
    1 kişi bunu beğendi.
  • 21-10-2024, 09:24:17
    #17
    PropJoe adlı üyeden alıntı: mesajı görüntüle
    <?php
    // Hata raporlamasını açalım
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // Tarih dönüşümü için bir fonksiyon oluşturalım
    function formatDate($date, $inputFormat = 'm/d/Y', $outputFormat = 'd/m/Y') {
        try {
            $dateObj = DateTime::createFromFormat($inputFormat, $date);
            if ($dateObj === false) {
                throw new Exception("Geçersiz tarih formatı: $date");
            }
            return $dateObj->format($outputFormat);
        } catch (Exception $e) {
            error_log("Tarih dönüşüm hatası: " . $e->getMessage());
            return $date; // Hata durumunda orijinal tarihi döndür
        }
    }
    
    // Tarihleri dönüştürelim
    $baslangicTarihi = isset($vericek['izinbaslamatarihi']) ? formatDate($vericek['izinbaslamatarihi']) : '';
    $bitisTarihi = isset($vericek['izinbitistarihi']) ? formatDate($vericek['izinbitistarihi']) : '';
    ?>
    
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="card shadow mb-4">
                    <div class="card-header py-3">
                        <h5 class="m-0 font-weight-bold text-primary"><?php echo htmlspecialchars($vericek['adisoyadi'] ?? ''); ?> İzin Talebi</h5>
                    </div>
                    <div class="card-body">
                        <form>
                            <div class="form-row">
                                <div class="form-group col-md-6">
                                    <label>Adı Soyadı</label>
                                    <input disabled value="<?php echo htmlspecialchars($vericek['adisoyadi'] ?? ''); ?>" type="text" required class="form-control" name="adisoyadi" placeholder="Adı Soyadı">
                                </div>
                                <div class="form-group col-md-6">
                                    <label>Firma</label>
                                    <input disabled value="<?php echo htmlspecialchars($vericek['firma'] ?? ''); ?>" type="text" required class="form-control" name="firma" placeholder="Firma">
                                </div>
                            </div>
                            <div class="form-row">
                                <div class="form-group col-md-4">
                                    <label>Başlama Tarihi</label>
                                    <input class="form-control tarih" placeholder="Başlama Tarihi" required disabled value="<?php echo htmlspecialchars($baslangicTarihi); ?>" type="text" name="izinbaslamatarihi">
                                </div>
                                <div class="form-group col-md-4">
                                    <label>Bitiş Tarihi</label>
                                    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled value="<?php echo htmlspecialchars($bitisTarihi); ?>" type="text" name="izinbitistarihi">
                                </div>
                            </div>
                            <input type="hidden" name="ikizintalep_id" value="<?php echo htmlspecialchars($_POST['ikizintalep_id'] ?? ''); ?>">
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
    Bu kodu çalıştırın, çıkan hata kodunu yazın bakalım.
    Ayriyetten veritabanından gelen tarih formatının gerçekten 'm/d/Y' olduğundan emin olun. Eğer farklı bir format kullanılıyorsa (örneğin 'Y-m-d'), formatDate() fonksiyonunun ilk parametresini buna göre ayarlamanız gerekecektir.
    Hocam desteğimiz için çok teşekkür ederim. Veritabanında y/m/d olarak kayıt oluyormuş, o kısım gözümdem kaçtı. Sorunum çözüldü.
  • 21-10-2024, 09:25:24
    #18
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Php'den anlamam ama html'de date olan input'da value'ya bir değer set ediyorsanız. YYYY-MM-DD olmak zorunda browser dili ne ise öyle gösterir yani ingilizce browser'da veya html lang'da farklı türkçede farklı ama sizin set value'nuz değişmez

    Aşağıdakini deneyin isterseniz.

    <div class="form-group col-md-4">
    <label>Bitiş Tarihi</label>
    <input class="form-control tarih" placeholder="Bitiş Tarihi" required disabled="" value="<?php echo date('Y-m-d', strtotime($vericek['bitistarihi'])); ?>" type="date" name="bitistarihi">
    </div>
    Hocam desteğiniz için teşekkür ederim. İletmiş olduğunuz kod çalıştı.