javascript格式的日期从DDMMYYYY到DD / MM / YYYY

时间:2015-10-13 16:21:42

标签: javascript jquery datetime datepicker

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

Image

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

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

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

由于

3 个答案:

答案 0 :(得分:0)

在进行简单转换时,请考虑slice 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

RegExp 中,

  • [chars]表示匹配这些字符(在这种情况下为chars
  • [^chars][chars]的倒数,即匹配除了这些字符之外的任何字符
  • \d是任意数字,即数字09
  • g标志表示g个标题,即在比赛结束后继续寻找另一场比赛

答案 1 :(得分:0)

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

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 :(得分:0)

试试这个......

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('/'); }