मुझे अपने डेटा के लिए डेटपिकर का उपयोग करने में समस्या है। मुझे अपने डेटाबेस के लिए केवल माह और वर्ष इनपुट करने की आवश्यकता है। यह डेटा के लिए मेरा प्रकार है

enter image description here

अब तक मेरे पास यह दृश्य है:

<div class="form-group">
    <label for="Periode" class="col-md-2">
        Periode <text style="color:red"><b>*</b></text>
    </label>
<div class="col-md-4">
<script type="text/javascript">
    $(function() {   
        $("#periode").datepicker({
            dateFormat: 'YYYY-MM',
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,

            onClose: function(date, inst) {
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                $(this).val($.datepicker.formatDate('MM yy', new Date(year, month, 1)));
            }
        });

        $("#periode").focus(function () {
            $(".ui-datepicker-calendar").hide();
            $("#ui-datepicker-div").position({
                my: "center top",
                at: "center bottom",
                of: $(this)
            });
        });
    });
</script>
<input class="form-control" name="periode" id="periode" data-format="YYYY-MM" class="Periode" required />

डेटपिकर काम कर रहा है (यह डिस्प्ले में केवल महीने और साल दिखाता है) यहां छवि विवरण दर्ज करें

लेकिन एक बार जब मैंने सबमिट बटन पर क्लिक किया, तो डेटा सफलतापूर्वक डेटाबेस में इनपुट नहीं किया गया, मैंने xampp से डेटा की जांच की और यह तालिका में स्पष्ट रूप से 0000-00-00 दिखाता है

क्या समस्या का कोई बेहतर समाधान है? पहले से ही अन्य प्रश्नों को देखने की कोशिश की लेकिन मुझे कोई स्पष्ट समाधान नहीं मिला: /

संपादित करें: यदि आप सोच रहे हैं, तो यह नियंत्रक है

        public function submit(){
    $data = array(
        'kode_karyawan'=>$this->input->post('kode_karyawan'),
        'nama_karyawan'=>$this->input->post('nama_karyawan'),
        'periode'=>$this->input->post('periode')
    );
    $this->absengaji_m->insert($data);
    redirect('absengaji');
   }
}

और यह मॉडल है:

   public function insert($data){
        print_r($data);
        $this->db->insert('uangmakan',$data);
    }
3
Team 11 सितंबर 2018, 16:00

1 उत्तर

सबसे बढ़िया उत्तर

यह दिनांक को YYYY-MM से YYYY-MM-DD में बदलने और फिर डेटाबेस में डालने का कार्य है

function con2mysql($date) {
  $date = explode("-",$date);
  if ($date[2]<=9) { $date[2]="0".$date[2]; }
  $date = array($date[0], $date[1], $date[2]);

 return $n_date=implode("-", $date);
 }

यदि आप PHP 5>= 5.1.0 का उपयोग कर रहे हैं, तो मूल funciton . है

$dateTime = new DateTime($yourDate);
$formatted_date = date_format($dateTime, 'Y-m-d' );

आपको बदलने की जरूरत है

public function submit(){
        $data = array(
            'kode_karyawan'=>$this->input->post('kode_karyawan'),
            'nama_karyawan'=>$this->input->post('nama_karyawan'),
            'periode'=>$this->input->post('periode')
        );
        $this->absengaji_m->insert($data);
        redirect('absengaji');
       }
    }

प्रति

public function submit(){
     $dateTime = new DateTime($this->input->post('periode'));
     $formatted_date = date_format($dateTime, 'Y-m-d' );

        $data = array(
            'kode_karyawan'=>$this->input->post('kode_karyawan'),
            'nama_karyawan'=>$this->input->post('nama_karyawan'),
            'periode'=> $formatted_date
        );
        $this->absengaji_m->insert($data);
        redirect('absengaji');
       }
    }
2
Sunny Kalariya 11 सितंबर 2018, 17:08