【问题标题】:javascript format date from DDMMYYYY to DD/MM/YYYYjavascript 格式日期从 DDMMYYYY 到 DD/MM/YYYY
【发布时间】:2016-01-11 12:08:47
【问题描述】:

我有一个日期选择器,当用户输入为 ddmmyyyy 时,我想将日期解析为 dd/mm/yyyy。

Image

我在输入文本中添加了一个 javascript 函数,但我不知道我的方法是否正确

<inputText id="input1" onchange="parseDate()"/>

<script type="text/javascript">
    $(document).ready(function() {
         $("#input1").datepicker()   
    };
    function parseDate() {
        ??? 
    }
<script>

谢谢

【问题讨论】:

    标签: javascript jquery datetime datepicker


    【解决方案1】:

    如果这是您正在查看的确切格式,那么您可以将其解析出来:

    http://jsfiddle.net/q3yrtu0z/

    $('#input1').change(function() {
      $(this).val($(this).val().replace(/^(\d{2})(\d{2})(\d{4})$/, '$1/$2/$3'));
    });
    

    这是这样设计的,如果该值正好是 8 位,那么它将格式化为 XX/XX/XXXX。

    您可能希望对日期格式的有效性进行额外验证(尽管无论如何您也必须对 MM/DD/YYYY 输入执行此操作)

    【讨论】:

      【解决方案2】:

      试试这个....

      function convertDate(inputFormat) {function pad(s) { return (s < 10) ? '0' + s : s; } var d = new Date(inputFormat); return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('/'); }
      

      【讨论】:

        【解决方案3】:

        当您进行简单的转换时,请考虑 sliceing 您的 String 到您想要添加字符的位置,例如

        var strA = '13102015',
            strB = strA.slice(0, 2) + '/' + strA.slice(2, 4) + '/' + strA.slice(4);
        strB; // "13/10/2015"
        

        如果用户稍后修改它可能会被多次调用,您可能还希望在开始时使用 replace 强制输入为预期格式,例如

        '13/102015'.replace(/[^\d]/g, ''); // "13102015"
        // now continue to slice
        

        在一个正则表达式中,

        • [chars] 表示匹配这些字符(在本例中为 chars
        • [^chars][chars] 的倒数,即匹配除这些字符之外的任何字符
        • \d 是任何数字,即数字 09
        • g 标志表示global,即在一场比赛之后继续寻找另一场比赛

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多