首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime分析问题

DateTime分析问题
EN

Stack Overflow用户
提问于 2016-01-17 05:46:43
回答 1查看 130关注 0票数 1

我有一个验证日期时间文本框的问题,

日期时间是以下列方式显示的日期:

代码语言:javascript
复制
public class Article : TblAbstract<int> {
                private DateTime displayDate;

                [DisplayName("وقت الظهور")] // Display date in arabic
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd hh:mm:ss tt}")]
        [DataType(DataType.DateTime)]
        [Editable(true, AllowInitialValue = true)]

// the error message means: display date is not in a correct format and it must be 2016-09-30 06:26:35 am

        [DateTimeFormatValidation(ErrorMessage = "وقت الظهور ليس بالشكل الصحيح، عليك إعتماد هذا الشكل 2016-09-30 06:26:35 am")]
                public DateTime DisplayDate {
                        get { return displayDate; }
                        set { displayDate = value; }
                }
}


public class AddArticleViewsModel : AdminGViewsModel {
    private List<ArticleItem> articleItemList;
    private Article newArticle;

    public AddArticleViewsModel() : base(typeof(AddArticleViewsModel)) {
        newArticle = new Article();
        newArticle.DisplayDate = DateTime.Now;
        articleItemList = new List<ArticleItem>();


    }

    public List<ArticleItem> ArticleItemList {
        get { return articleItemList; }
        set { articleItemList = value; }
    }

    public Article NewArticle {
        get { return newArticle; }
        set { newArticle = value; }
    }
}

我在文本框上使用jquery控件:

jquery时间选择器-addon-1.6.1.js来自网站

http://trentrichardson.com/examples/timepicker

所使用的javascript:

代码语言:javascript
复制
<script>
                        $("#txtDisplayDate").datetimepicker({
                dateFormat: 'yy-mm-dd',
                timeFormat: 'hh:mm:ss tt'
            });
</script>

文本框的html和剃刀:

代码语言:javascript
复制
<div class="lblMsg">
            // arabic means: warning you to fix the following issues
    @Html.ValidationSummary(false, "تنبيه، عليك إصلاح الأخطاء التالية:")
</div>

 <p>
        @Html.LabelFor(model => model.NewArticle.DisplayDate, new { id = "lblDisplayDate", name = "lblDisplayDate", Class = "lblAddArticle", For = "txtDisplayDate" })
        @Html.TextBoxFor(model => model.NewArticle.DisplayDate, "{0:yyyy-MM-dd hh:mm:ss tt}", new { id = "txtDisplayDate", name = "txtDisplayDate", Class = "inputAddArticle" })
    </p>

除了火狐(Firefox43.04 64位版)之外,这在所有浏览器上都能正常工作。

见以下图片:

有问题的已设计页面的图像: i.stack.imgur.com/EMLa4.png

显示问题的图片发生在firefox中: i.stack.imgur.com/UGKRc.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-21 19:32:16

问题的解决方案是使用:剃须刀:

代码语言:javascript
复制
@Html.TextBoxFor(model => model.NewArticle.DisplayDate, "{0:yyyy-MM-dd hh:mm:ss tt}", new { id = "txtDisplayDate", name = "txtDisplayDate", Class = "inputAddArticle", @Type="datetime", @Data_Val_Date = "وقت الظهور ليس بالنسق المطلوب، عليك إعتماد هذا الشكل 2016-01-30 11:30:20 am" })

JavaScript:

代码语言:javascript
复制
$(function () {
    jQuery.validator.methods.date = function (value, element) {
            if (value) {
                try {
                    var dateTest = /^[1-2][0-9]{3}-[0-1][1-9]-[0-3][0-9] [0-1][1-9]:[0-5][0-9]:[0-5][0-9] [APap][mM]$/;
                    return this.optional(element) || dateTest.test(value);
                } catch (ex) {
                    alert(ex);
                    return false;
                }
            }
            return true;
        };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34835542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档