php - codeigniter中的月份和年份日期选择器问题
问题描述
我在为我的数据使用日期选择器时遇到问题。我只需要为我的数据库输入月份和年份。这是我的数据类型
到目前为止,我有这样的看法:
<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);
}
解决方案
这是一个将日期从 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,则有本机功能
$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');
}
}
推荐阅读
- quarkus - 在 quarkus 中设置 Envers 属性
- python - Pandas:如何选择具有必须匹配的一系列值的数据框行?
- flutter - Flutter 2.5.1 - 无法为模拟器构建应用程序
- python - 如何拆分行并在行后打印输出?(Python)
- dax - 在 Power Pivot 中分组
- javascript - 未捕获的 ReferenceError:addEventListener 未定义 nodejs
- npm - npm install 时 Bcrypt (Next.js) 出错
- docker - 如何在现实生活中实际使用 Docker
- ruby-on-rails-5 - 环境错误:任务:TOP => resque:work => resque:preload => resque:setup => environment
- enterprise - 如何在 Enterprise Architect 中为对象实例类型添加新元素?