Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JS中将小时和分钟显示为文字_Javascript_Time_Gettime - Fatal编程技术网

Javascript 在JS中将小时和分钟显示为文字

Javascript 在JS中将小时和分钟显示为文字,javascript,time,gettime,Javascript,Time,Gettime,BACKGROUND:我正在使用getHours()和getMinutes()在页面上显示时间 问题:我正在试图找出如何将数字时间(即“21:00”)转换为书面的小时和分钟格式(即“九点”) 我的JS: function startTime() { var today=new Date(); var h=today.getHours(); var m=today.getMinutes(); // add a zero in front of numbers<10 m=checkTime

BACKGROUND:我正在使用
getHours()
getMinutes()
在页面上显示时间

问题:我正在试图找出如何将数字时间(即“21:00”)转换为书面的小时和分钟格式(即“九点”)

我的JS:

function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
// add a zero in front of numbers<10
  m=checkTime(m);
  document.getElementById('time').innerHTML="The time is "+h+" o'clock and "+m+" past";
t=setTimeout(function(){startTime()},500);
}

  function checkTime(i)
  {
  if (i<10)
    {
    i="0" + i;
    }
  return i;
  } 
函数开始时间()
{
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();

//在数字前面添加一个零您可以使用查找表或数组将数字转换为名称

function startTime() {
    var today = new Date();
    var h = today.getHours();
    var m = today.getMinutes();
    // add a zero in front of numbers greater than 10
    document.getElementById('time').innerHTML = "The time is " + convertHourToName(h) + " o'clock and " + convertNumberToName(m) + " past";
    setTimeout(startTime,500);
}

function checkTime(i) {
    if (i < 10) {
        i = "0" + i;
    }
    return i;
} 

function convertHourToName(num) {
    if (num > 12) {
        num -= 12;
    }
    return convertNumberToName(num);
}

function convertNumberToName(num) {
    var lowNames = ["zero", "one", "two", "three", 
                  "four", "five", "six", "seven", "eight", "nine", 
                 "ten", "eleven", "twelve", "thirteen", "fourteen", 
                  "fifteen", "sixteen", "seventeen", 
                  "eighteen", "nineteen"];
    var tensNames = ["twenty", "thirty", "forty", "fifty", 
                "sixty", "seventy", "eighty", "ninety"];
    var tens, ones, result;
    if (num < lowNames.length) {
        result = lowNames[num];
    } else {
        tens = Math.floor(num / 10);
        ones = num % 10;
        if (tens <= 9) {
            result = tensNames[tens - 2];
            if (ones > 0) {
                result += " " + lowNames[ones];
            }
        } else {
            result = "unknown"
        }
    }
    return result;
}

startTime();
函数开始时间(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
//在大于10的数字前面加一个零
document.getElementById('time').innerHTML=“时间是“+convertHourToName(h)+”点钟和“+convertNumberToName(m)+”过去”;
设置超时(开始时间,500);
}
功能检查时间(i){
如果(i<10){
i=“0”+i;
}
返回i;
} 
函数convertHourToName(num){
如果(数值>12){
num-=12;
}
返回convertNumberToName(num);
}
函数转换器NumberToName(num){
var lowNames=[“零”、“一”、“二”、“三”,
“四”、“五”、“六”、“七”、“八”、“九”,
“十”、“十一”、“十二”、“十三”、“十四”,
“十五”、“十六”、“十七”,
“十八”、“十九”];
变量tensNames=[“二十”、“三十”、“四十”、“五十”,
“六十”、“七十”、“八十”、“九十”];
变量十,一,结果;
if(num

工作演示:

您可以使用查找表或数组将数字转换为名称

function startTime() {
    var today = new Date();
    var h = today.getHours();
    var m = today.getMinutes();
    // add a zero in front of numbers greater than 10
    document.getElementById('time').innerHTML = "The time is " + convertHourToName(h) + " o'clock and " + convertNumberToName(m) + " past";
    setTimeout(startTime,500);
}

function checkTime(i) {
    if (i < 10) {
        i = "0" + i;
    }
    return i;
} 

function convertHourToName(num) {
    if (num > 12) {
        num -= 12;
    }
    return convertNumberToName(num);
}

function convertNumberToName(num) {
    var lowNames = ["zero", "one", "two", "three", 
                  "four", "five", "six", "seven", "eight", "nine", 
                 "ten", "eleven", "twelve", "thirteen", "fourteen", 
                  "fifteen", "sixteen", "seventeen", 
                  "eighteen", "nineteen"];
    var tensNames = ["twenty", "thirty", "forty", "fifty", 
                "sixty", "seventy", "eighty", "ninety"];
    var tens, ones, result;
    if (num < lowNames.length) {
        result = lowNames[num];
    } else {
        tens = Math.floor(num / 10);
        ones = num % 10;
        if (tens <= 9) {
            result = tensNames[tens - 2];
            if (ones > 0) {
                result += " " + lowNames[ones];
            }
        } else {
            result = "unknown"
        }
    }
    return result;
}

startTime();
函数开始时间(){
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
//在大于10的数字前面加一个零
document.getElementById('time').innerHTML=“时间是“+convertHourToName(h)+”点钟和“+convertNumberToName(m)+”过去”;
设置超时(开始时间,500);
}
功能检查时间(i){
如果(i<10){
i=“0”+i;
}
返回i;
} 
函数convertHourToName(num){
如果(数值>12){
num-=12;
}
返回convertNumberToName(num);
}
函数转换器NumberToName(num){
var lowNames=[“零”、“一”、“二”、“三”,
“四”、“五”、“六”、“七”、“八”、“九”,
“十”、“十一”、“十二”、“十三”、“十四”,
“十五”、“十六”、“十七”,
“十八”、“十九”];
变量tensNames=[“二十”、“三十”、“四十”、“五十”,
“六十”、“七十”、“八十”、“九十”];
变量十,一,结果;
if(num

工作演示:

将innerHTML赋值行插入现有JSFIDLE有什么问题?这样地。请描述您现有代码存在的问题。@jfriend00,我想用文字而不是数字来显示时间,所以请将21:00转换为“九”,等等。将innerHTML赋值行插入现有JSFIDLE有什么不对?这样地。请描述您的现有代码存在的问题。@jfriend00,我想用文字而不是数字显示时间,所以请将21:00转换为“九”,等等。添加了将时间数字完全实现为文字的代码和一个工作演示。感谢您的详细描述!为Word和工作演示添加了时间数字的完整实现代码。感谢您的详细描述!