【问题标题】:javascript accepting multiple date formatjavascript接受多种日期格式
【发布时间】:2015-09-29 15:04:08
【问题描述】:

我应该先说我是一个非常初级的开发人员,拥有通用 IS 学位。没有过多的细节,我从一名实习软件工程师那里得到了一个中等大小的 Web 应用程序,以便在需要时支持增强功能。它主要用 Python、JavaScript 和 HTML5 编写,并利用 Google Map API 直观地表示给定输入的位置和用途。这引出了我的问题。

应用程序/用户可以使用日期选择器模式。他们选择 START 和 END 日期,采用默认格式 YYYY-MM-DD(如果用户不使用该确切格式(即 2015-09-29),日期选择器将不起作用),然后应用程序转到DB 并在这些日期之间选择给定的输入并在地图上表示它们。有人告诉我,为了可用性,我必须让程序接受多种日期格式(即 2015 年 9 月 29 日、2015 年 9 月 29 日、2015 年 9 月 29 日、2015 年 9 月 29 日)。我该怎么做呢?

【问题讨论】:

标签: javascript python date web format


【解决方案1】:

您可以使用 Javascript 向用户提供使用正确格式的反馈。但是,如果您将任何数据带到您的服务器,请务必验证服务器上的数据。

要验证正确的数据格式,您可以使用正则表达式并检查任何格式是否正确。您应该遍历所有允许的可能性,直到找到正确的一种。

【讨论】:

    【解决方案2】:

    从用户体验的角度来看,最好的选择不是尝试解析多种格式,而是规范化被接受的输入。

    对于日期,您宁愿使用日历选择器而不是手动输入日期吗?

    看看这个jQuery solution,或者你可以谷歌,有很多不使用jQuery的,你可以通常指定输出格式,这样你就可以得到你需要的格式。

    这是一个做你想做的事的例子:http://jsfiddle.net/ezygkgxt/

    HTML

    <label>Date: <input name='date' /></label>
    <input type='hidden' id='actualDate' />
    

    JS

    $("input[name='date']").datepicker({
      altFormat: "yy-mm-dd",
        altField: "#actualDate"
    });
    
    $("input[name='date']").change(function(){
        window.alert("The current chosen date is: "+$("#actualDate").val());
    });
    

    【讨论】:

    • 感谢您的回复!事实证明,这个应用程序确实已经内置了一个日历选择器。但是,在我们的测试中,我们发现 IE11 不支持此日历选择。有什么想法吗?它在 Chrome 上受支持。
    • @mleone99 您可以更改为支持 IE11 的日历。我的示例中的那个支持 IE8+。但是,如果您完全反对这个想法,您可能需要查看屏蔽输入插件,在您输入输入时会在哪些格式和验证、自动插入日期的连字符等。不过也需要 jQ。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多