繁体   English   中英

需要帮助尝试编写带有日期和时间的脚本

[英]Need help try the write a script with day date and time

不知道我做错了什么,需要一些帮助来解决它我正在尝试编写脚本来写出这样的日期和时间目前是:9 月 21 日星期三下午 3:15。这就是我有

function renderTime(){
var mydate = new date();
var year = mydate.getYear();
    if(year < 1000){
        year +=1900
    }
var day = mydate.getDay();
var month = mydate.getMonth();
var daym = mydate.getDate();
var dayarray = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var montharray = new Array("Jannuary","Februry","March","April","May","June","July","Augest","September","October","November","December");

var currentTime = new Date();
var h = currentTime.getHour();
var m = currentTime.getMinutes();
var ampm = h >= 12 ? 'pm' : 'am';
 if(h == 24){
        h = 0;
    } else if (h > 12 ){
        h = h - 0;
    }
    if(h < 10){
        h = "0" + h;
    }
    if(m < 10){
        m = "0" + m;
    }
}

document.write("It is currently"+h+m+"on"+dayarray[day]+ montharray[month]+daym);

您可以使用 toLocaleDateString 和 toLocaleTimeString 来简化它:

 var myDate = (new Date()).toLocaleDateString("en-US", {weekday: 'long',month: 'long',day: 'numeric'}); var myTime = (new Date()).toLocaleTimeString("en-US", {hour: 'numeric',minute: 'numeric' }); var message = 'It is currently: ' + myTime + ' on ' + myDate; console.log(message);

 var mydate = new Date(); var year = mydate.getYear(); if(year < 1000){ year +=1900 } var day = mydate.getDay(); var month = mydate.getMonth(); var daym = mydate.getDate(); var dayarray = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"); var montharray = new Array("Jannuary","Februry","March","April","May","June","July","Augest","September","October","November","December"); var currentTime = new Date(); var h = currentTime.getHours(); var m = currentTime.getMinutes(); var ampm = h >= 12? 'pm': 'am'; if(h == 24){ h = 0; } else if (h > 12 ){ h = h - 12; } if(h < 10){ h = "0" + h; } if(m < 10){ m = "0" + m; } document.write("It is currently "+h+ ":"+ m+ ampm +" on "+dayarray[day] + ' ' + montharray[month] + ' '+daym);

let dateString = new Date().toLocaleDateString("en-US").split("/");
// returns an array ["month", "day as number in month", "year"]
let timeString = new Date().toLocaleTimeString("en-US").split(/:| /);
// returns an array ["hour", "minute", "second", "am or pm"]
let weekDayNumber = new Date().getDay();
let days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
let months = ["Jannuary","Februry","March","April","May","June","July","Augest","September","October","November","December"];
document.write("It is currently"+timeString[0]+timeString[1]+"on"+days[weekDayNumber ]+ months[dateString[0]]+dateString[1]);

您在 function 中运行所有日期渲染,这将所有临时变量保密。 这是一件好事,但您没有提供任何方法来获得结果。 在 function 中包含一个return语句,以返回如下格式的字符串:

return ("It is currently "+h+":"+m+" on "+dayarray[day]+" "+ montharray[month]+" "+daym);

您为时间创建了一个新的 Date object,但您应该只使用为日期创建的一个,并且您错过了方法名称的字母。 这是修改后的版本:

function renderTime(){
var mydate = new Date();
var year = mydate.getYear();
    if(year < 1000){
        year +=1900
    }
var day = mydate.getDay();
var month = mydate.getMonth();
var daym = mydate.getDate();
var dayarray = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var montharray = new Array("January","Februry","March","April","May","June","July","Augest","September","October","November","December");


// re-use mydate here instead of creating a new object.
var h = mydate.getHours();          // You missed the 's' off 'getHours()'
var m = mydate.getMinutes();
var ampm = h >= 12 ? 'pm' : 'am';
 if(h == 24){
        h = 0;
    } else if (h > 12 ){
        h = h - 0;
    }
    if(h < 10){
        h = "0" + h;
    }
    if(m < 10){
        m = "0" + m;
    }

// Return the result. Added some spaces to pretty it up a bit
return ("It is currently "+h+":"+m+ampm+" on "+dayarray[day]+" "+ montharray[month]+" "+daym);
}

// Now output the return value of the function.
document.write(renderTime());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM