Javascript中的strtime

Javascript中的strtime,javascript,strptime,phpjs,Javascript,Strptime,Phpjs,我有一个日期输入字段,允许用户输入一个日期,我需要验证这个输入(我已经有了服务器端验证),但诀窍是格式取决于语言环境。我已经有了一个将strtime格式字符串转换为用户偏好的系统,我想在Javascript端使用相同的格式进行验证 是否有任何指向Javascript中的strtime()实现的想法或链接?下面是一个复制strtime大部分功能的示例函数。JavaScript日期对象通常会解析您抛出的任何日期字符串,因此您不必对此太担心。因此,一旦你有了一个基于字符串的日期对象,你只需将每个元素推

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


是否有任何指向Javascript中的
strtime()
实现的想法或链接?

下面是一个复制strtime大部分功能的示例函数。JavaScript日期对象通常会解析您抛出的任何日期字符串,因此您不必对此太担心。因此,一旦你有了一个基于字符串的日期对象,你只需将每个元素推送到一个JS对象中并返回它。此站点很好地参考了JavaScript日期对象的属性:


下面是一个示例函数,它复制了strtime的大部分功能。JavaScript日期对象通常会解析您抛出的任何日期字符串,因此您不必对此太担心。因此,一旦你有了一个基于字符串的日期对象,你只需将每个元素推送到一个JS对象中并返回它。此站点很好地参考了JavaScript日期对象的属性:


经过几天的谷歌搜索,我发现它虽然不完整,但似乎可以处理我现在遇到的所有情况。

经过几天的谷歌搜索,我发现它虽然不完整,但似乎可以处理我现在遇到的所有情况。

我刚刚添加了我们的php.js实现;我已经对它进行了一些测试,但它需要进一步的单元测试。不管怎么说,你可以随意试一试;它应该涵盖PHP所做的一切(除了还不支持未记录的%E..(可选语言环境格式)说明符)

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


我刚刚添加了的php.js实现;我已经对它进行了一些测试,但它需要进一步的单元测试。不管怎么说,你可以随意试一试;它应该涵盖PHP所做的一切(除了还不支持未记录的%E..(可选语言环境格式)说明符)

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


我想你不明白strtime是做什么的。给它一个日期字符串和该日期的格式。考虑一下我需要使用的2种格式:<代码> %m/%D/%y和<代码> %D%M.%y。您的解析器如何判断“10/5/2008”是“2008年10月5日”,而“10.5.2008”是“2008年4月10日”?根据您的描述,我假设您唯一关心的格式化问题是,日期字符串的格式化是不同地区的人格式化他们的日期。JavaScript日期对象知道浏览器的区域,并将相应地自动解析日期。@Kelly Anderson:不,我不是想让浏览器根据其区域设置日期格式(对于旅行者来说可能会更改,对于非母语人士来说则不合适)但是它应该根据用户已经选择的语言偏好进行格式化。所以我需要strtime和一个格式化字符串。我想你不明白strtime的作用。给它一个日期字符串和该日期的格式。考虑一下我需要使用的2种格式:<代码> %m/%D/%y和<代码> %D%M.%y。您的解析器如何判断“10/5/2008”是“2008年10月5日”,而“10.5.2008”是“2008年4月10日”?根据您的描述,我假设您唯一关心的格式化问题是,日期字符串的格式化是不同地区的人格式化他们的日期。JavaScript日期对象知道浏览器的区域,并将相应地自动解析日期。@Kelly Anderson:不,我不是想让浏览器根据其区域设置日期格式(对于旅行者来说可能会更改,对于非母语人士来说则不合适)但是它应该根据用户已经选择的语言偏好进行格式化。所以我需要strtime和一个格式化字符串。您好,有没有可能扩展出这个答案,这样即使链接坏了,它仍然对未来的访问者有帮助?您好,有没有可能扩展出这个答案,这样即使链接坏了,它仍然对未来的访问者有帮助?
        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);