Javascript 如何获得一周中的哪一天和一年中的哪一个月?
我对Javascript了解不多,我发现的其他问题与日期操作有关,而不仅仅是获取我需要的信息 客观的 我希望获得如下格式的日期: 2011年1月27日星期四17:42:21打印 到目前为止,我得到了以下信息:Javascript 如何获得一周中的哪一天和一年中的哪一个月?,javascript,datetime,dayofweek,Javascript,Datetime,Dayofweek,我对Javascript了解不多,我发现的其他问题与日期操作有关,而不仅仅是获取我需要的信息 客观的 我希望获得如下格式的日期: 2011年1月27日星期四17:42:21打印 到目前为止,我得到了以下信息: var now = new Date(); var h = now.getHours(); var m = now.getMinutes(); var s = now.getSeconds(); h = checkTime(h); m = checkTime(m); s = checkT
var now = new Date();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();
h = checkTime(h);
m = checkTime(m);
s = checkTime(s);
var prnDt = "Printed on Thursday, " + now.getDate() + " January " + now.getFullYear() + " at " + h + ":" + m + ":" s;
我现在需要知道如何获取星期几和月份(它们的名称)
是否有一个简单的方法来实现它,或者我考虑使用数组,在这里我只使用<代码> > GETMUNTH()/<代码>和<代码>现在。GETWAL()/<代码>?/P> < P>是的,您需要数组。< /P>
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
var day = days[ now.getDay() ];
var month = months[ now.getMonth() ];
或者你可以使用图书馆
编辑: 如果要经常使用这些工具,可能需要扩展
Date.prototype
,以便于访问
(function() {
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
Date.prototype.getMonthName = function() {
return months[ this.getMonth() ];
};
Date.prototype.getDayName = function() {
return days[ this.getDay() ];
};
})();
var now = new Date();
var day = now.getDayName();
var month = now.getMonthName();
使用该工具,您可以:
var now = new Date;
var prnDt = now.customFormat( "Printed on #DDDD#, #D# #MMMM# #YYYY# at #hhh#:#mm#:#ss#" );
不幸的是,javascript中的
Date
对象仅以数字格式返回有关月份的信息。您可以做的更快的事情是创建一个月数组(它们不应该经常更改!),并创建一个基于数字返回名称的函数
大概是这样的:
function getMonthNameByMonthNumber(mm) {
var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
return months[mm];
}
因此,您的代码变为:
var prnDt = "Printed on Thursday, " + now.getDate() + " " + getMonthNameByMonthNumber(now.getMonth) + " "+ now.getFullYear() + " at " + h + ":" + m + ":" s;
例如,您可以查看哪个解析本地化的日期输出
在您的示例中,格式可能如下所示:
new Date().toString('dddd, d MMMM yyyy at HH:mm:ss')
您还可以通过以下方式扩展date对象以返回工作日:
Date.prototype.getWeekDay = function() {
var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
return weekday[this.getDay()];
}
因此,只能调用date.getWeekDay() var GetWeekDays=函数(格式){
var weekDays={};
var curDate=新日期();
对于(变量i=0;i<7;++i){
工作日[curDate.getDay()]=curDate.toLocaleDateString('ru-ru'{
工作日:格式?格式:“短”
});
curDate.setDate(curDate.getDate()+1);
}
返回工作日;
};
me.GetMonthNames=函数(格式){
var monthNames={};
var curDate=新日期();
对于(变量i=0;i<12;++i){
monthNames[curDate.getMonth()]=curDate.toLocaleDateString('ru-ru'{
月份:格式?格式:“长”
});
curDate.setMonth(curDate.getMonth()+1);
}
返回月份;
};
正如@所建议的,您也可以查看
样品
var today=moment();
var结果={
日期:今天。格式(“dddd”),
月份:今天。格式(“MMM”)
}
document.write(“+JSON.stringify(result,0,4)+”)代码>
const options = { weekday: 'long' };
const date = new Date();
console.log(date.toLocaleDateString('en-US', options));
使用标准的javascript日期类不需要阵列。不需要额外的库。
看
var options={weekday:'long',year:'numeric',month:'long',day:'numeric',hour:'2位',minute:'2位',second:'2位',hour12:false};
变量prnDt='打印日期'+新日期()。toLocaleTimeString('en-us',选项);
控制台日志(prnDt)代码>这很简单。您可以将选项设置为仅在toLocaleDateString()中显示周天数,以获取名称。例如:
new Date().toString('dddd, d MMMM yyyy at HH:mm:ss')
(new Date()).toLocaleDateString('en-US',{weekday:'long'})将仅返回一周中的某一天。和(new Date())。toLocaleDateString('en-US',{month:'long'})将只返回一年中的月份。From
toLocaleDateString()方法返回一个字符串,该字符串包含此日期的日期部分的语言敏感表示形式。新的locales和options参数允许应用程序指定应使用其格式约定的语言,并允许自定义函数的行为。在忽略区域设置和选项参数的旧实现中,使用的区域设置和返回的字符串的形式完全依赖于实现
长格式:
console.log(new Date().toLocaleDateString('en-US', { weekday: 'long' }));
一艘班轮:
function currentDate() {
var monthNames = [ "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE",
"JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER" ];
var days = ['SUNDAY','MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY'];
var today = new Date();
var dd = today.getDate();
var mm = monthNames[today.getMonth()];
var yyyy = today.getFullYear();
var day = days[today.getDay()];
today = 'Date is :' + dd + '-' + mm + '-' + yyyy;
document.write(today +"<br>");
document.write('Day is : ' + day );
}
currentDate();
注意:locale还有其他语言选项,但此处提供的语言选项适用于美国英语函数currentDate(){
var monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”,
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var days=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’、‘星期六’];
var today=新日期();
var dd=today.getDate();
var mm=monthNames[today.getMonth()];
var yyyy=today.getFullYear();
var day=days[today.getDay()];
今天='日期为:'+dd+'-'+mm+'-'+yyyy;
写(今天+“
”);
const options = { weekday: 'long' };
const date = new Date();
console.log(date.toLocaleDateString('en-US', options));
文件。书写('天为:'+天);
const options = { weekday: 'long' };
const date = new Date();
console.log(date.toLocaleDateString('en-US', options));
}
currentDate();
写日期=文档。写(Date())代码>我认为这是我找到的最好的解决方案
const options = { weekday: 'long' };
const date = new Date();
console.log(date.toLocaleDateString('en-US', options));
如果一周从1:‘星期一’、2:‘星期二’、3:‘星期三’、4:‘星期四’、5:‘星期五’、6:‘星期六’、7:‘星期日’开始,我们可以使用下面的片段
让工作日={
1:"星期一",,
二:"星期二",,
3:"星期三",,
四:"星期四",,
五:"星期五",,
6:‘星期六’,
7:“星期日”};
返回工作日[dt];
威尔:不客气。仅供参考,如果您要经常这样做,您可以很容易地将功能原型化到Date
对象中。我将在一分钟内更新。本地化您的数据,并且不需要只使用一种语言的数组!selectedLocale='en us';selectedDate.toLocaleString(selectedLocale,{month:“long”});我刚才这样做了,但是必须使用星期一作为数组中的第一个元素,而不是星期天。尽管如此,它仍然非常有效。不,不,不,不。只需使用标准的javascript日期类。不需要阵列或额外的库。请看我的回答:@RWC这很好,但是我如何只获得工作日而不获得剩余的日期部分?也就是说,我想要周六
而不是2019年2月9日,周六
@Valdimir Nul:var prnDt='打印日期'+新日期().toLocaleDateString('en-us',{工作日:'long');控制台日志(prnDt);绝对是最好的方法。@Vladimir Firefox有个问题,总是显示时间,然后:new Date().toLocaleTimeString(语言,{weekday:'long')).split(“”)[0]
这只是为我显示时间