在W2UI和MySQL中处理日期

在W2UI和MySQL中处理日期,mysql,w2ui,Mysql,W2ui,我正在使用MySQL,它以“yyyy-mm-dd”格式存储日期 我有一个布局,其中一个部分显示网格。此网格中的记录显示该记录首次创建的日期。我需要日期的格式为“mm/dd/yyyy” 以下是网格中日期字段的设置方式: { field: 'incident_date', caption: 'Incident Date', size: '150px', searchable: true, type: 'date', format: 'mm/dd/yyyy' }, 我还打开了一个表单,供用户编辑记录

我正在使用MySQL,它以“yyyy-mm-dd”格式存储日期

我有一个布局,其中一个部分显示网格。此网格中的记录显示该记录首次创建的日期。我需要日期的格式为“mm/dd/yyyy”

以下是网格中日期字段的设置方式:

{ field: 'incident_date', caption: 'Incident Date', size: '150px', searchable: true, type: 'date', format: 'mm/dd/yyyy' },
我还打开了一个表单,供用户编辑记录。这是该表单上的日期字段代码:

{ name: 'incident_date', type: 'date', format: 'mm/dd/yyyy', required: true },
在w2ui-1.4.2.min.js中,我有以下设置:

"date_format"       : "mm/dd/yyyy",
"date_display"      : "mm/dd/yyyy",
在表单上,日期字段有一个弹出式日历,当选择此字段时会出现。当您在日历中选择日期时,该字段将以“mm/dd/yyyy”格式填写您选择的日期

现在您已经了解了如何设置了,当您保存记录时,您输入的任何日期都会显示在网格中为“0000-00-00”。如果使用phpMyAdmin查看表中的实际数据,则存储的日期为“0000-00-00”

我想要的是在网格中以“mm/dd/yyyy”格式显示日期。我怎样才能做到这一点

谢谢,
TD

对于可能有相同问题的任何人,解决此问题的最简单方法是以mm dd yyyy格式从服务器返回日期。例如,如果使用MySQL,您可以在SQL SELECT语句中使用以下函数,date_格式(yourDate,“%m-%d-%Y”)

另一个修复是修改w2ui.js。在我看来,W2UIVER中的日期格式。1.5工作不正常。问题在于日期的w2utils.formatters。它使用与设置日期格式相同的日期格式来检查该日期是否有效。因此,如果yyyy-mm-dd被传递到params中,它将使用它来查看它是否为有效日期,并且失败。我做了一些对我有用的改变,如下所列

// MODIFIED LOCALE TO USE yyyy-mm-dd DATE FORMAT
var w2utils = (function ($) {
var tmp = {}; // for some temp variables
var obj = {
    version  : '1.5.RC1',
    settings : {
        "locale"            : "en-us",
        //"dateFormat"        : "m/d/yyyy",
        "dateFormat"        : "yyyy-mm-dd",
        "timeFormat"        : "hh:mi pm",
        "datetimeFormat"    : "m/d/yyyy|hh:mi pm",
        //"datetimeFormat"    : "yyyy-mm-dd|hh:mi pm",

// MODIFIED DATE FORMATTER.  ALWAYS RETRIEVE DEFAULT DATEFORMAT AND USE WHEN CHECKING FOR VALID DATE.  
w2utils.formatters = {
'date': function (value, params) {
    if (params === '') params = w2utils.settings.dateFormat;  // DELETED
    var defaultFormat = w2utils.settings.dateFormat;  //ADDED 
    if (value == null || value === 0 || value === '') return '';
    //var dt = w2utils.isDateTime(value, params, true);
    //if (dt === false) dt = w2utils.isDate(value, params, true);
    var dt = w2utils.isDateTime(value, defaultFormat, true);  // CHANGED
    if (dt === false) dt = w2utils.isDate(value, defaultFormat, true); // CHANGED
    return '<span title="'+ dt +'">' + w2utils.formatDate(dt, params) + '</span>';
},
//修改了区域设置以使用yyyy-mm-dd日期格式
变量w2utils=(函数($){
var tmp={};//对于某些临时变量
var obj={
版本:“1.5.RC1”,
设置:{
“区域设置”:“en us”,
//“日期格式”:“m/d/yyyy”,
“日期格式”:“yyyy-mm-dd”,
“时间格式”:“hh:mi pm”,
“日期时间格式”:“m/d/yyyy | hh:mi pm”,
//“日期时间格式”:“yyyy-mm-dd | hh:mi-pm”,
//已修改的日期格式化程序。始终检索默认日期格式,并在检查有效日期时使用。
w2utils.formatters={
“日期”:函数(值、参数){
if(params=='')params=w2utils.settings.dateFormat;//已删除
var defaultFormat=w2utils.settings.dateFormat;//已添加
如果(值==null | |值===0 | |值==='')返回“”;
//var dt=w2utils.isDateTime(值,参数,真);
//如果(dt==false)dt=w2utils.isDate(值,参数,true);
var dt=w2utils.isDateTime(值,defaultFormat,true);//已更改
如果(dt==false)dt=w2utils.isDate(值,defaultFormat,true);//已更改
返回“”+w2utils.formatDate(dt,params)+“”;
},
希望这对某人有所帮助。我正在将这些更改添加到存储库中

谢谢
约翰

有人吗???我正要放弃W2UI