使用Javascript转换日期

时间:2018-08-14 07:06:54

标签: javascript date datetime datetimepicker

我有一个输入(日期选择器)

<input runat="server" id="txtdob" />
<asp:Button runat="server" ID="btnsubmit" Text="Submit" OnClick="btnsubmit_Click" ></asp:Button>

但是当我输入日期格式(不是日历格式)26-06-1993时,由于单击提交按钮上的月份和日期已被替换,我得到一个错误,那么我正在使用Javascript函数将{{1 }}。

JavaScript

focusout

但是在这里我遇到了同样的问题,例如当我输入DOB = <script> $(document).ready(function () { $("#txtdob").focusout(function () { debugger; var input_date2 = document.getElementById("txtdob").value; debugger; var myDate = new Date(input_date2); var prettyDate = ('0' + (myDate.getDate())).slice(-2) + '-' + ('0' + (myDate.getMonth() + 1)).slice(-2) + '-' + myDate.getFullYear(); document.getElementById("txtdob").value = prettyDate; document.write(prettyDate); }); }); </script> 时,一切都正常工作,并且日期也转换为06-26-1993格式,但是  当我输入DOB = 26-06-1993时,我得到相同的错误。 如何解决?

2 个答案:

答案 0 :(得分:0)

我了解您的问题可以确保对您有帮助

  <script>
        var YourStringValue= function (date, format) {
            debugger;
            var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
            getPaddedComp = function (comp) {
                return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
            },
            formattedDate = format,
            o = {
                "y+": date.getFullYear(), // year
                "M+": months[date.getMonth()], //month
                "d+": getPaddedComp(date.getDate()), //day
                "h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
                "H+": getPaddedComp(date.getHours()), //hour
                "m+": getPaddedComp(date.getMinutes()), //minute
                "s+": getPaddedComp(date.getSeconds()), //second
                "S+": getPaddedComp(date.getMilliseconds()), //millisecond,
                "b+": (date.getHours() >= 12) ? 'PM' : 'AM'
            };

            for (var k in o) {
                if (new RegExp("(" + k + ")").test(format)) {
                    formattedDate = formattedDate.replace(RegExp.$1, o[k]);
                }
            } debugger;
            return formattedDate;
        };
        $(function () {

            debugger;
            var tst = '26-06-1993';
            var res = tst.split("-");
            try { 
                var formattedDate = YourStringValue(new Date(res[1] + '-' + res[0]+'-' + res[2]), "d-M-y")
                alert(formattedDate);
            }
            catch (err) {
                alert('FormtString');
            }

        });
    </script>

答案 1 :(得分:0)

对于这种类型的问题,有Date.js,它会自动转换值。

只需使用示例检查该页面,因此无需创建功能,只需添加页面并根据需要使用它即可。

因此,如果您输入的是20-08-201820/08/2018,并且显示August 20, 2018