2012-09-21 17 views
6

मैं अपने JQuery डेटपिकर से दिनांकों को डेटटाइप के साथ अपने MySQL डेटाबेस में मान नहीं डाल सकता। स्ट्रिंग टू डेट डेटाटाइप को मैं कैसे परिवर्तित करूं? एमवीसी के साथ कोडनिर्देशक का उपयोग कर रहा हूँ।कोडरिटर का उपयोग कर JQuery डेटपिकर से MySQL दिनांक डेटाटाइप में मूल्य कैसे सम्मिलित करें?

जावास्क्रिप्ट

<script> 
$(function() { 
    $("#datepicker").datepicker({ 
     showOn: "button", 
     buttonImage: "images/icons/calendar_24.png", 
     buttonImageOnly: true, 
     onSelect: function(dateText, inst){ 
      $("input[name='dob']").val(dateText); 
     } 
    }); 

}); 
</script> 

नियंत्रक

function create() 
{ 
    $data = array(
     'FirstName' => $this->input->post('fname'), 
     'DateofBirth' => $this->input->post('dob') 
    ); 

    $this->site_model->add_record($data); 
    $this->index(); 
} 

<?php echo form_open('site/create');?> 
<p> 
    <label for="fname">First Name:</label> 
    <input type="text" name="fname" /> 
</p> 

<p> 
    <input type="text" name='dob' id="datepicker" /> 
</p> 

धन्यवाद लोग दृश्य: यहाँ मेरी कोड है! मैं गूगल में कुछ समाधान पढ़ सकते हैं और मैं ऐसा किया:

नियंत्रक:

function create() 
{ 
    $date = $this->input->post('dob'); 

    $data = array(
     'FirstName' => $this->input->post('fname'), 
     'DateofBirth' => date('Y-m-d', strtotime($date)) 
    ); 

    $this->site_model->add_record($data); 
    $this->index(); 
} 

और इस मेरी समस्या हल! :)

+0

एक MySQL तारीख एक निश्चित प्रारूप के साथ एक सरल स्ट्रिंग है: 'YYYY-MM-DD'' 1000 से लेकर -01-01' से 99 99-12-31' तक। बस इस प्रारूप में प्राप्त तिथि को परिवर्तित करें (यदि आवश्यक हो) और इसे सम्मिलित करें। –

उत्तर

5

मुझे लगता है कि आपकी MySQL तालिका का डॉब कॉलम DATE प्रकार का है। Date प्रकार yyyy-mm-dd के प्रारूप में मूल्य लेता है उदा। 2012-09-21

तो अपने प्रश्न का उत्तर देने के लिए - आपको डेटपिकर से तारीख को उपरोक्त वैध प्रारूप में प्रारूपित करने की आवश्यकता है। जैसे यदि आपका datepicker तारीख dd-mm-yy प्रारूप में है आप अपने नियंत्रक में php के date() समारोह का उपयोग कर mysql दिनांक स्वरूप को परिवर्तित करने की आवश्यकता है ....

function create() 
{ 
    $data = array(
     'FirstName' => $this->input->post('fname'), 
     'DateofBirth' => date('Y-m-d', strtotime(str_replace('-', '/', $this->input->post('dob')))); 
    ); 

    $this->site_model->add_record($data); 
    $this->index(); 
} 

(वहाँ अन्य तरीकों datetime वर्ग भी तरह दिनांकों को संभालने के लिए कर रहे हैं) नोट जब strtotime()

मीटर में दिनांक का उपयोग कर/दि/व या DMY प्रारूपों विभिन्न घटकों के बीच विभाजक को देखकर disambiguated कर रहे हैं: यदि विभाजक एक स्लैश (/), तो है अमेरिकी एम/डी/वाई माना जाता है; जबकि विभाजक एक डैश (-) या एक बिंदु (।) है, तो यूरोपीय डी-एम-वाई प्रारूप माना जाता है।

+0

इसके लिए अच्छा स्पष्टीकरण +1 – Vamsi

+0

thx @Vamsi आपने कॉवेन्ट्री विश्वविद्यालय में पढ़ाई की? मुझे लगता है कि मुझे वम्सी नामक एक लड़का पता है। – TigerTiger

+0

नहीं मैं @HappyApe – Vamsi

0
<script> 
$(function() { 
    $("#datepicker").datepicker({ 
     showOn: "button", 
     buttonImage: "images/icons/calendar_24.png", 
     buttonImageOnly: true, 
     dateFormat: 'Y-m-d'  // No need to add onselect , value selected will automatically be added to input field #datepicker  
    }); 

}); 
</script> 

आपका कोड ठीक है

0
$(document).ready(function() { 

    var year=new Date().getFullYear(); 
    var yearTo=year-18; 
    var yearFrom=year-100; 

    //display the years from hundred years in the past till 18 years in the past 

    $("#datePickerDOB").live("click",function(){  

     $("#datePickerDOB").datepicker({ 
      changeMonth: true, 
      changeYear: true, 
      yearRange: yearFrom+":"+yearTo, 
      dateFormat: "dd-mm-yy" 
     }); 
    }); 
}); 
0

उपयोग datepicker फ़ॉर्मेट करने के लिए निम्नलिखित:।

$ ('# datepicker') datepicker ({DateFormat: 'yy-mm- dd '});

+0

सरल नहीं हूं अभी तक बहुत अच्छा काम करता है! धन्यवाद! –

0

आपका नियंत्रक इस तरह दिखना चाहिए:

{ 
    $date = $this->input->post('dob'); 

    $data = array(
     'FirstName' => $this->input->post('fname'), 
     'DateofBirth' => date('Y-m-d', strtotime($date)) 
    ); 

    $this->site_model->add_record($data); 
    $this->index(); 
} 

मैं इस आप सूट लगता है बेहतर