从日/月/年的表格中获取正确的日期
Getting the proper date from forms that are day/month/year
当使用字符串编写新的日期对象时,可以这样写:
var someDay = new Date("12/01/2012");
等于2012年12月1日。
但是,如果用户必须在网站上填写日期,而格式不是月/日/年,而是日/月/年,该怎么办?那么如何创建具有正确日期的date对象呢?
如果您从另一个网站获得字符串形式的数据,那么您需要知道该网站为您提供日期的格式。这是没有办法的,因为D-M-Y和M-D-Y是无法区分的;如果年份使用两位数的格式,甚至Y-M-D也无法区分。
这根本没有经过测试,但最坏的情况是,大致的想法应该可以解决您的问题。
var pattern = /^('d+)'b('d+)'b('d+)$/;
if (!pattern.test(dateString))
return null;
var matches = dateString.match(pattern);
if (siteUsesDMY)
return new Date(matches[2], matches[1]-1, matches[0]);
if (siteUsesMDY)
return new Date(matches[2], matches[0]-1, matches[1]);
...
Pattern:该模式支持日期的任何数字表示,假设它在每个单位之间有一个分隔符。如果你需要支持一个没有中断字符的网站,你需要一个与该网站的确切格式相匹配的不同模式(即:站点发送DDMMYYYY,那么模式将是/^('d{2})('d{2})('d{4})$/
)。
还修复了日期创建中的month参数,因为我刚刚记得JavaScript使用0-11表示月份。
相关文章:
- 如何从Angularjs中的新日期获取日期格式
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从javascript中的日期获取月份号
- 从datetimepicker引导程序上点击的日期获取点击事件
- 如何在JS中从Y-m-d日期获取unix时间戳
- 从getTime()类型的日期获取日期和时间,以显示mySQL数据库中的日期
- 使用 Jquery 从日期获取星期几
- 如何在没有周末的情况下添加天数以从当前日期获取下一个日期
- 从服务器返回的日期获取星期几
- 如何使用 momentjs 从日期获取日期名称
- 时刻.js从日期获取日期名称
- 我想在 JavaScript 中使用日期函数将日期获取为 9 月 8 日星期日上午 11:46
- 从当前日期获取GMT字符串
- 为什么angularjs摘要使用日期获取函数进入无限循环
- 从格式化日期获取UTC时间戳-javascript
- 如何在codebehind中为Datepicker设置日期/获取日期
- 如何在asp.net/c#中从两个开始和结束自定义日期获取周数
- 从给定的开始日期获取结束日期
- 在javascript中使用当前日期获取两周日期
- 日期获取自定义周开始日的周数