【问题标题】:jQuery masked input - format date as m/d/yyyy or m/dd/yyyy or mm/dd/yyyy or mm/d/yyyyjQuery 屏蔽输入 - 将日期格式设置为 m/d/yyyy 或 m/dd/yyyy 或 mm/dd/yyyy 或 mm/d/yyyy
【发布时间】:2011-05-04 19:19:12
【问题描述】:

我想使用http://digitalbush.com/projects/masked-input-plugin/ 此处找到的 jQuery 屏蔽输入插件来格式化日期。

我正在从数据库中提取数据以在页面加载时填充日期字段。如果日期不正确,用户将能够更改日期。

我希望人们能够只输入一个数字来表示月份和日期,而不必在一位数字之前输入 0。我希望他们能够输入 2010 年 6 月 13 日而不是 2010 年 6 月 13 日。不过,数据库中的数据前面可能没有 0。

我知道在 ? 之后列出的任何内容是可选的,但我希望开头或中间的字符是可选的。

谢谢!

【问题讨论】:

  • 不过,数据库中的数据前面可能没有 0。 因此.. 它们被存储为 varchar 而不是日期?

标签: javascript jquery jquery-ui formatting


【解决方案1】:

我最近有一个类似的要求,我能找到的唯一不需要我做很多工作来调整插件的就是使用this modified date masking plugin that is based on the one you mentioned。到目前为止,它似乎正在完成这项工作。

如果你想测试一下,head to this page

我们使用这个修改过的日期屏蔽器的基本实现如下:

$('#yourInputBoxHere').mask("99/99/9999", {placeholder: 'MM/DD/YYYY' });

我没有尝试过用个位数表示日期,但如果我要这样做,我只需将上面的表达式更改为:

$('#yourInputBoxHere').mask("9/9/9999", {placeholder: 'M/D/YYYY' });

我希望这会有所帮助。

【讨论】:

  • 这只是添加了一个占位符,并接受输入值 99/99/9999。我们可以设置一些规则来接受正确的日期格式。 Eg MM should never exceed 12
【解决方案2】:

简短的回答是: 不调整插件不可能

但是,如果您使用 jquery ui datepicker,您的用户会非常感谢您。

它的用法很简单:

$("#texbox1").datepicker();

当输入框获得焦点时,它会显示一个漂亮的日历。

希望这会有所帮助。干杯

【讨论】:

  • 我的用户将输入出生日期和结婚日期。是否有日期选择器可以让他们轻松选择远离当前日期的年份?
  • 只要我们谈论用户喜欢什么,请确保您在页面上指明格式为月-日-年,因为澳大利亚、英国和欧洲大部分地区使用日-月-年默认情况下。
【解决方案3】:

我不确定这是否解决了您的问题,但我在 https://github.com/RobinHerbots/jquery.inputmask 上找到了这个:

$('#yourInputBoxHere').datepicker().inputmask("date", { placeholder: "mm/dd/yyyy", yearrange: { minyear: 1700 } });

如果您以大于“1”的数字开头,这将在月初填写“0”,如果数字大于3,则“0”会自动放在前面。

yearrange 也可以指定 maxyear,如果您需要该条件。

如果您不想要 jquery 日历,可以省略 .datepicker()

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    相关资源
    最近更新 更多