5

我有一个允许用户输入日期的日期输入字段,我需要验证这个输入(我已经有服务器端验证),但诀窍是格式取决于语言环境。我已经有一个系统可以将 strptime 格式字符串转换为用户的偏好,我想使用相同的格式在 Javascript 端进行验证。

任何想法或链接到strptime()Javascript 中的实现?

4

3 回答 3

3

经过几天的谷歌搜索,我发现这个实现 虽然不完整,但似乎可以处理我现在拥有的所有案例。

于 2009-01-29T15:30:27.007 回答
1

我刚刚添加了strptime()的 php.js 实现;我已经对其进行了一些测试,但它需要进一步的单元测试。无论如何,请随意试一试;它应该涵盖 PHP 所做的所有事情(除了尚不支持未记录的 %E...(替代语言环境格式)说明符)。

请注意,它还取决于我们对 setlocale() 和 array_map() 的实现...

于 2010-02-12T04:20:06.147 回答
-3

这是一个示例函数,它复制了 strptime 的大部分功能。JavaScript 日期对象通常会解析你扔给它的任何日期字符串,所以你不必担心太多。所以一旦你有了一个基于你的字符串的日期对象,你只需将每个元素推入一个 JS 对象并返回它。该站点对 JavaScript 日期对象的属性有很好的参考:http ://www.javascriptkit.com/jsref/date.shtml

        function strptime(dateString){
            var myDate = new Date(dateString);
            return {tm_sec:myDate.getSeconds(), 
                            tm_min: myDate.getMinutes(), 
                            tm_hour: myDate.getHours(), 
                            tm_mday: myDate.getDate(),
                            tm_mon: myDate.getMonth(), 
                            tm_year: myDate.getFullYear().toString().substring(2), 
                            tm_wday: myDate.getDay()};

        }

        var dateString = "October 12, 1988 13:14:00";       
        dateObj = strptime(dateString);
        document.write("d:" + dateObj.tm_min + "/" + dateObj.tm_hour + "/" + dateObj.tm_mday + "/" + dateObj.tm_mon + "/" + dateObj.tm_year);   
于 2009-01-26T23:12:14.757 回答