style script div change attribute javascript datetime dayofweek

javascript - script - title css



¿Cómo obtener el día de la semana y el mes del año? (8)

No sé mucho sobre Javascript, y las otras preguntas que encontré están relacionadas con las operaciones en fechas, no solo obteniendo la información como la necesito.

Objetivo

Deseo obtener la fecha como se muestra a continuación:

Impreso el jueves 27 de enero de 2011 a las 17:42:21

Hasta ahora, obtuve lo siguiente:

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;

Ahora necesito saber cómo obtener el día de la semana y el mes del año (sus nombres).

¿Hay una manera simple de hacerlo, o debo considerar el uso de matrices donde simplemente now.getMonth() valor correcto usando now.getMonth() y now.getDay() ?


Como @ L-Ray ya ha sugerido, también puedes mirar moment.js

Muestra

var today = moment(); var result = { day: today.format("dddd"), month: today.format("MMM") } document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>


Desafortunadamente, el objeto Date en javascript devuelve información sobre meses solo en formato numérico. Lo más rápido que puede hacer es crear una matriz de meses (¡se supone que no deben cambiar con frecuencia!) Y crear una función que devuelva el nombre en función del número.

Algo como esto:

function getMonthNameByMonthNumber(mm) { var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); return months[mm]; }

Su código por lo tanto se convierte en:

var prnDt = "Printed on Thursday, " + now.getDate() + " " + getMonthNameByMonthNumber(now.getMonth) + " "+ now.getFullYear() + " at " + h + ":" + m + ":" s;


Puede ver datejs que analiza el resultado de la fecha localizada, por ejemplo.

El formato puede verse así, en su ejemplo:

new Date().toString(''dddd, d MMMM yyyy at HH:mm:ss'')


Sí, necesitarás arreglos.

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() ];

O puede usar la biblioteca date.js

EDITAR:

Si va a utilizar estos con frecuencia, es posible que desee extender Date.prototype para la accesibilidad.

(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();


Una cosa que también puede hacer es extender el objeto de fecha para devolver el día de la semana de la siguiente manera:

Date.prototype.getWeekDay = function() { var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return weekday[this.getDay()]; }

por lo tanto, solo puede llamar a date.getWeekDay ();




var GetWeekDays = function (format) { var weekDays = {}; var curDate = new Date(); for (var i = 0; i < 7; ++i) { weekDays[curDate.getDay()] = curDate.toLocaleDateString(''ru-RU'', { weekday: format ? format : ''short'' }); curDate.setDate(curDate.getDate() + 1); } return weekDays; }; me.GetMonthNames = function (format) { var monthNames = {}; var curDate = new Date(); for (var i = 0; i < 12; ++i) { monthNames[curDate.getMonth()] = curDate.toLocaleDateString(''ru-RU'', { month: format ? format : ''long'' }); curDate.setMonth(curDate.getMonth() + 1); } return monthNames; };