日期格式实用问题

Posted

技术标签:

【中文标题】日期格式实用问题【英文标题】:Date format handsontable issue 【发布时间】:2013-06-28 15:23:18 【问题描述】:

我有一张可动手做的桌子:

$("#old_tab_handsontable").handsontable( 数据:数据, 开始行:1, colHeaders: ['ID', 'datePers', 'dateArchive', 'dateAncienne', 'dateDef', 'IS'], 列: [ 数据:'ID', 数据:'datePers',类型:'date', 数据:'dateArchive',类型:'date', 数据:'dateHist.old',类型:'date', 数据:'dateDef',类型:'date', 数据:“是” ], colWidths: [100, 100, 100, 100, 100, 100] ); 所有的车道都用我的数据库完成。我有一个按钮可以保存车道上的变化: $("#save").click(function() var handsontable = $("#old_tab_handsontable").data('handsontable'); console.log(handsontable.getData()); $.ajax( url: "/Reporting/saveperspective", 数据:'数据':handsontable.getData(), 类型:'POST', 成功:函数() generateJsMessage("Les perspectives ont bien été modifiées", 'success'); , 错误:函数() generateJsMessage("Une erreur s'est produite", 'error'); ); );

我的问题是,如果我将一个日期保存为 2012-02-01,当我重新加载页面时,考虑的单元格将显示 2012-01-02。当我 console.log(handsontable.getData());现在还是 2012-02-01,当我 var_dump($_POST['data']) 时,还是 2012-02-01... 我的数据库(我不允许触摸/修改/...)在 SQL Server 上。

我的更新控制器是:

公共函数 saveperspectiveAction() $this->_helper->getHelper('layout')->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $data = $_POST['data']; _dump($_POST['data']); foreach($data 为 $one): $this->reporting->updateListPerspectives($one['ID'], $one['datePers'], $one['dateArchive'], $one['dateDef'], $one['IS']); 结束; 返回真;

我的吸气剂控制器是

公共函数 getperspectiveAction() $resultSql = $this->reporting->getListPerspectives(); $this->_helper->getHelper('layout')->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $tab = 数组(); foreach ($resultSql as $oneline) if ($oneline['dateHist.old'] == NULL) array_push($tab, array('ID' => $oneline['theDate_id'], 'datePers' => $oneline['datePers']->format('Y-m-d'), 'dateArchive' => $oneline['dateArchive']->format('Y-m-d'), 'dateHist.old' => " ", 'dateDef' => $oneline['dateDef']->format('Y-m-d'), 'IS' => $oneline['isCriteria'])); else array_push($tab, array('ID' => $oneline['theDate_id'], 'datePers' => $oneline['datePers']->format('Y-m-d'), 'dateArchive' => $oneline['dateArchive']->format('Y-m-d'), 'dateHist.old' => $oneline['dateHist.old']->format('Y-m-d'), 'dateDef' => $oneline['dateDef']->format('Y-m-d'), 'IS' => $oneline['isCriteria'])); print json_encode($tab); </pre>

【问题讨论】:

你需要定义dateFormat属性。 【参考方案1】:

尝试设置日期格式:

            $("#old_tab_handsontable").handsontable(
                data: data,
                startRows: 1,
                colHeaders: ['ID', 'datePers', 'dateArchive', 'dateAncienne', 'dateDef', 'IS'],
                columns: [
                    data: 'ID',
                    data: 'datePers', type: 'date', dateFormat: 'mm/dd/yy',
                    data: 'dateArchive', type: 'date', dateFormat: 'mm/dd/yy',
                    data: 'dateHist.old', type: 'date', dateFormat: 'mm/dd/yy',
                    data: 'dateDef', type: 'date', dateFormat: 'mm/dd/yy',
                    data: 'IS'
                ],
                colWidths: [100, 100, 100, 100, 100, 100]
            );

【讨论】:

以上是关于日期格式实用问题的主要内容,如果未能解决你的问题,请参考以下文章

在纪元中转换日期格式

IOS 日期的简洁格式展示

IOS 日期的简洁格式展示

excel改的日期格式为啥要双击一下单元格才能变

GreenPlum数据库及语法-时间函数实用操作

Java 8 – 日期和时间实用技巧