使用 Javascript 转换日期

Convert Date using Javascript

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

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

但是当我输入日期(不是来自日历)格式时 26-06-1993 我得到一个错误,因为月份和日期在点击提交按钮时被替换然后我使用 Javascript 函数来转换focusout.

上的日期格式

Javascript

<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>

但在这里我遇到了同样的问题,就像我输入 DOB = 06-26-1993 时一切正常,日期也转换为 26-06-1993 格式但是 当我输入 DOB = 26-06-1993 我得到同样的错误。 如何解决?

我明白你的问题确保这会帮助你

  <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., 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>

对于此类问题,有Date.js,可以自动转换值。

只需在该页面中签入示例即可,因此无需创建函数,只需添加到您的页面中并根据需要使用即可。

因此,如果您输入 20-08-201820/08/2018,则显示 August 20, 2018