处理时钟脚本。我需要在单个数字前添加一个Zero

时间:2016-09-22 17:08:01

标签: javascript ajax

对于经验丰富的编码员来说,这听起来很简单。我是一个新手试图在我的时钟页面上实现这一点。它可能包含错误。为了显示目的,想法是在单个数字前面生成零(如“02”而不是“2”)。它可以正常工作两位数。 这就是我得到的,但没有做到这一点。包括我已经完成的不同尝试的注释行。我很感激任何投入的人。

<script>
    $(function() {
        getdata();
        myinterval = setInterval(getdata, 30000);

    });

    function getdata(){
        var dt = new Date();
        console.log(dt.getMinutes());
        var myhr = dt.getHours();
        var mymin = dt.getMinutes();
        //if(myhr < 10) myhrstr = '0' + myhr.toString(); else myhrstr = myhr.toString();
        //if(myhr.toString().length < 2) myhrstr = '0' + myhr.toString(); else myhrstr = myhr.toString();
        //if(myhr.toString().length < 2) myhr = "0"+myhr;
        if(myhr.toString().length == 1) myhrstr = "0" + myhr.toString(); else myhrstr = myhr.toString();


        //if(mymin < 10) myminstr = '0' + mymin.toString(); else myminstr = mymin.toString();
        //if(mymin.toString().length < 2) myminstr = '0' + mymin.toString(); else myminstr = mymin.toString();
        //if(mymin.toString().length < 2) mymin = "0"+mymin;
        if(mymin.toString().length == 1) myminstr = "0" + mymin.toString(); else myminstr = mymin.toString();

        var mystr = myhrstr + myminstr;
        $.ajax(
                 {
                 url:"clock.php?action=getdata&dt="+mystr,
                 success:function(result){
                    $('#content').html(result);
                    }   
                }
        );
    }
</script>

3 个答案:

答案 0 :(得分:1)

是什么让你认为你的代码不起作用?它工作正常。

这是一个演示:

function FakeDate() {
  this.getHours = function() {
    return Math.round(Math.random() * 23);
  }
  this.getMinutes = function() {
    return Math.round(Math.random() * 59);
  }
}

var dt = new FakeDate(); // use fakeDate for random time generations

var myhr = dt.getHours();
var mymin = dt.getMinutes();
if (myhr.toString().length == 1) myhrstr = "0" + myhr.toString();
else myhrstr = myhr.toString();

if (mymin.toString().length == 1) myminstr = "0" + mymin.toString();
else myminstr = mymin.toString();

var mystr = myhrstr + myminstr;

console.log(mystr);

您可以简化此代码的一种方法是,由于您未使用数值,因此您可以立即使用toStringgetHours方法调用getMinutes。出于同样的原因,也不需要额外的变量来保存字符串值,您可以在追加"0"时使用相同的变量。

// get the strings representing hours and minutes
var myhr = dt.getHours().toString();
var mymin = dt.getMinutes().toString();

// prepend them with zeros if needed
if (myhr.length == 1) myhr = "0" + myhr;
if (mymin.length == 1) mymin = "0" + mymin;

// concatenate them to a 4 digit value
var mystr = myhr + mymin;

这是一个演示:

function FakeDate() {
  this.getHours = function() {
    return Math.round(Math.random() * 23);
  }
  this.getMinutes = function() {
    return Math.round(Math.random() * 59);
  }
}

var dt = new FakeDate(); // use fakeDate for random time generations

// get the strings representing hours and minutes
var myhr = dt.getHours().toString();
var mymin = dt.getMinutes().toString();

// prepend them with zeros if needed
if (myhr.length == 1) myhr = "0" + myhr;
if (mymin.length == 1) mymin = "0" + mymin;

// concatenate them to a 4 digit value
var mystr = myhr + mymin;

console.log(mystr);

答案 1 :(得分:0)

var mystr;
if(myhr < 10 ) {
   mystr = "0" + myhr.toString();
} else {
   mystr = myhr.toString();
}
if (mymin < 10) {
    mystr += ":0" + mymin.toString();
} else {
    mystr += ":" + mymin.toString();
}

答案 2 :(得分:0)

用零填充单个数字的简单技巧

map