Necesito resaltar las fechas entre una fecha de inicio y una fecha de finalización, que yo debería ser capaz de especificar. ¿Alguien puede ayudarme?Resalte las fechas en un rango específico con el marcador de fechas de jQuery
Respuesta
Puede usar el beforeShowDay event. Se llamará para cada fecha que deba mostrarse en el calendario. Pasa en una fecha y devuelve un array con [0] = isSelectable, 1 = CssClass, [2] = Algunos texto de sugerencia
$('#whatever').datepicker({
beforeShowDay: function(date) {
if (date == myDate) {
return [true, 'css-class-to-highlight', 'tooltipText'];
}
}
});
No olvide devolver [verdadero, ''] si no desea resaltar un día: http://stackoverflow.com/a/9358119/664132 – basic6
cómo el parámetro "fecha" "se inicializa, ¿cuál es la fecha de inicio y final de ese valor para la función (fecha)? –
¡He aquí un ejemplo de trabajo! Necesitarás hacer un paquete desde aquí con http://jqueryui.com/download con núcleo, widget y datepicker.
La parte Javascript a proponer a:
<script>
$(document).ready(function() {
var dates = ['22/01/2012', '23/01/2012']; //
//tips are optional but good to have
var tips = ['some description','some other description'];
$('#datepicker').datepicker({
dateFormat: 'dd/mm/yy',
beforeShowDay: highlightDays,
showOtherMonths: true,
numberOfMonths: 3,
});
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
if (new Date(dates[i]).toString() == date.toString()) {
return [true, 'highlight', tips[i]];
}
}
return [true, ''];
}
});
</script>
El HTML parte:
<div id="datepicker"></div>
Añadir alguna parte de este CSS:
td.highlight {border: none !important;padding: 1px 0 1px 1px !important;background: none !important;overflow:hidden;}
td.highlight a {background: #99dd73 url(bg.png) 50% 50% repeat-x !important; border: 1px #88a276 solid !important;}
y se necesita para hacer una imagen pequeña llamado bg.png para que funcione
Pero eso no cambia el bgcolor de la fecha, solo de la celda de la tabla donde podemos ver el borde. – mplungjan
Tendrá que agregar otra pieza de código CSS para especificar también el color de la etiqueta dentro de su elemento como este '.highlight a { fondo: rojo; } ' Ahora van a ser ambos de color rojo :) – Mike
Lo intenté. No funcionó con ese selector. Consulte aquí: http://stackoverflow.com/questions/9023818/correct-way-to-change-specific-dates-cell-background-color-on-datepicker – mplungjan
pensaba que iba a tirar mis dos centavos, ya que parece de peso más rápido y más ligero que otros:
jQuery(function($) {
var dates = {
'2012/6/4': 'some description',
'2012/6/6': 'some other description'
};
$('#datepicker').datepicker({
beforeShowDay: function(date) {
var search = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate();
if (search in dates) {
return [true, 'highlight', (dates[search] || '')];
}
return [false, '', ''];
}
});
});
Esto funcionó perfectamente para mí: copiar y pegar. Buen trabajo @ mark-murphy! – HPWD
Mugur, su código hizo el trabajo no es para mí en Firefox o Safari, requirió la date
var a estar formateado (que obtuve de here). Aquí
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
var d = date.getDate();
var m = date.getMonth();
m += 1; // JavaScript months are 0-11
var y = date.getFullYear();
var dateToCheck = (d + "/" + m + "/" + y);
if (dates[i] == dateToCheck) {
return [true, 'highlight', tips[i]];
}
}
return [true, ''];
}
Y, por supuesto, que la anterior se encuentra que no da cuenta de los principales-ceros relleno para la matriz dates
necesitaba ser cambiado a:
var dates = ['22/1/2014', '23/1/2014'];
Su respuesta funcionó para mí. ¿Qué pasa si la fecha que tengo está en formato '31/08/2015 '? –
No estoy frente a una computadora, pero dividiría la fecha en componentes de día, mes y año y volvería a combinar para pasar a esta función. Lo más probable es que el proceso de división hará que el '08' se convierta en '8'. Alternativamente, ¿no funcionaría la respuesta de Mugur? – Todd
if (m <10) { \t m = '0' + m; } funcionó para mí –
No estoy seguro si esta voluntad ser todavía útil, pero como éste era útil para mí, quiero compartir lo que hice:
En mi JavaScript:
var holidays= ["2016/09/18", "2016/09/19", "2016/01/01", "2016/05/01", "2016/06/27", "2016/08/15"];
$("#SomeID").datepicker({ beforeShowDay: highLight });
function highLight(date) {
for (var i = 0; i < holidays.length; i++) {
if (new Date(holidays[i]).toString() == date.toString()) {
return [true, 'ui-state-holiday'];
}
}
return [true];
}
Y en el tema jquery-ui.css He añadido
.ui-state-holiday .ui-state-default {
color: red;
}
Si se desea resaltar también los fines de semana, usted tiene que utilizar este CSS en lugar
.ui-state-holiday .ui-state-default, .ui-datepicker-week-end .ui-state-default {
color: red;
}
y este es el resultado:
(Tenga en cuenta que He configurado mi idioma para español, pero esto no es importante para este código)
Tarde a la fiesta, pero aquí hay un jsFiddle que he utilizado para la prueba:
https://jsfiddle.net/gq6kdoc9/
HTML:
<div id="datepicker"></div>
JavaScript:
var dates = ['11/13/2017', '11/14/2017'];
//tips are optional but good to have
var tips = ['some description', 'some other description'];
$('#datepicker').datepicker({
dateFormat: 'dd/mm/yy',
beforeShowDay: highlightDays,
showOtherMonths: true,
numberOfMonths: 3,
});
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
if (new Date(dates[i]).toString() == date.toString()) {
return [true, 'highlight', tips[i]];
}
}
return [true, ''];
}
y CSS:
td.highlight {
border: none !important;
padding: 1px 0 1px 1px !important;
background: none !important;
overflow: hidden;
}
td.highlight a {
background: #ad3f29 url(bg.png) 50% 50% repeat-x !important;
border: 1px #88a276 solid !important;
}
Construido sobre el Mi ¡Ejemplo de trabajo de ke arriba!
- 1. jQuery Validate (Rango de fechas)
- 2. Crear un rango de fechas
- 3. oráculo rango de fechas
- 4. selector de rango de fechas similar al selector de rango de fechas de Google Analytics?
- 5. mysql seleccione las fechas en el rango de 30 días
- 6. determinar si el rango de fechas se encuentra entre otro rango de fechas - sql
- 7. SQL Rango de fechas dividido
- 8. Cómo usar jquery-datepicker para el rango de fechas
- 9. Fecha Rango Superposición con anulable Fechas
- 10. Rango de fechas en una matriz, ruby
- 11. Buscar fechas faltantes para un rango determinado
- 12. Generación de un informe por rango de fechas en raíles
- 13. Eliminar las fechas contenidas en otras fechas?
- 14. deshabilitar el rango de fechas en el calendario de Joomla
- 15. Problema con las fechas de clasificación con jQuery tablesorter
- 16. ¿Cómo determinar si un rango de fechas ocurre en cualquier momento dentro de otro rango de fechas?
- 17. Obteniendo la lista de fechas en un rango en PostgreSQL
- 18. Crear rango de fechas de mysql
- 19. ¿Cómo restringir el intervalo de fechas de un jquery datepicker dando dos fechas?
- 20. Consultar el rango de fechas en los raíles
- 21. algoritmo reto: rango de fechas fusión
- 22. ¿Cómo iterar por el rango de Fechas en Java?
- 23. Cómo iterar en un rango de fechas en PL/SQL
- 24. fechas en jQuery
- 25. Java: Rango de fechas mín. Y máx.
- 26. matplotlib gráfico de barras con las fechas
- 27. Grupo MySQL por intervalos en un rango de fechas
- 28. Recorra las fechas con PHP
- 29. Comparar las fechas con Parse.com
- 30. problema con jQuery selector de fechas onselect
Lo sentimos, necesitamos más. ¿Desea resaltar un rango o solo las 2 fechas? ¿Estás usando el jquery ui datepicker o has creado el tuyo propio? –
rango de fechas –
Posible duplicado: [Es necesario resaltar el rango de fechas en jquery datepicker] (http://stackoverflow.com/questions/16317396/need-to-highlight-range-of-dates-in-jquery-datepicker) (¿O de otra manera?) – Mogsdad