Avatar billede gobbles Nybegynder
03. august 2004 - 17:43 Der er 9 kommentarer og
1 løsning

hjælp til et dateChooser script

Hej jeg med hjælp fra sephiroth.net fået et script der kan lave et Array med valgbare datoer til dateChooser komponenten, dette er mig meget indviklet da de normale funktioner i dateChooser kun tillader man har en række hinanden efterfølgende datoer der kan være enten "selectableRange" eller "disabledRange". Men her er der tale om enkelte udvalgte ikke kontinuerlige datoer der kan vælges..

Mit problem var jeg har et Array med datoer der skal være "disabled"(ikke valgbare) og alle andre datoer skal være "selectable"(valgbare) men det script han har lavet tager et array med dage der der skal være selectable og gøre resten af datoerne i året disabled.....altså det stik modsatte af hvad det gør nu, jeg kan ikke finde ud af at ændre i scriptet af den simple grund jeg ikke forstår det godt nok... er der nogen der kan hjælpe mig vil jeg blive meget lykkelig...

ActionScript Flash:
// here your dates.. all the valid dates you want
valid_dates = ["01/01/2004",
"05/02/2004",
"15/08/2004",
"25/12/2004",
"19/07/2005"];

// to be populated
invalid_dates = []

function convert (data)
{
  var d;
  var s;
  s = data.split ("/");
  d = new Date (s[2], parseInt(s[1],10)-1, s[0]);
  return d;
}
// convert into date object
for(var a in valid_dates){
  valid_dates[a] = convert(valid_dates[a])
}
// sort new object
valid_dates.sort(function(a,b){ return a.getTime() - b.getTime() })

// minimum date
var _min = new Date(valid_dates[0].getTime()).setDate(valid_dates[0].getDate()-1)
// maximum date
var _max = new Date(valid_dates[valid_dates.length-1].getTime()).setDate(valid_dates[valid_dates.length-1].getDate()+1)
invalid_dates.push({rangeStart: new Date(0), rangeEnd: _min})

for(var a = 0; a < (valid_dates.length-1); a++){
  sDate = new Date(valid_dates[a].getTime()).setDate(valid_dates[a].getDate() + 1)
  eDate = new Date(valid_dates[a+1].getTime()).setDate(valid_dates[a+1].getDate() - 1)
  invalid_dates.push({rangeStart: sDate, rangeEnd: eDate})
}

invalid_dates.push({rangeStart: _max, rangeEnd: new Date(2099,1,1)})
DC.disabledRanges = invalid_dates


tak igen
Avatar billede pyroman Nybegynder
03. august 2004 - 22:06 #1
Så behøver du ikke det der lange script... - bare det her:



invalid_dates = ["01/01/2004",
"05/02/2004",
"15/08/2004",
"25/12/2004",
"19/07/2005"];


function convert (data){
  var d;
  var s;
  s = data.split ("/");
  d = new Date (s[2], parseInt(s[1],10)-1, s[0]);
  return d;
}
// convert into date object
for(var a in valid_dates){
  invalid_dates[a] = convert(invalid_dates[a])
}

minDC.disabledRanges = invalidDates;
Avatar billede gobbles Nybegynder
03. august 2004 - 22:54 #2
Tak pyro
Vil alle andre datoer end dem i mit array så være valgbare?
Avatar billede gobbles Nybegynder
03. august 2004 - 22:57 #3
how... jeg mente vil alle datoer på nær dem før dags dato og dem i mit array være valgbare...
Avatar billede pyroman Nybegynder
03. august 2004 - 22:59 #4
Ikke dem før dags dato... sagde du noget om det?

Men kan godt lave det... tager ikke elang tid
Avatar billede gobbles Nybegynder
03. august 2004 - 23:05 #5
Ahh måske nok min fejl, det script jeg har brugt før havde jeg ladet udelukke dage før dags dato...men jeg kunne ikke implementere det i det nye script da jeg ikke forstod det... dage før dags dato er ligegyldige da ingen af de arrangementer er relevante...da de jo er ovre, hvis du gider ville jeg være meget taknemmelig, smid endeligt et svar jeg får først testet i morgen men jeg tager dit ord for det virker du plejer at være god for det. :)
Avatar billede pyroman Nybegynder
03. august 2004 - 23:16 #6
jeg har faktisk testet det - for mig og komponenter plejer ikke at være helt dus med hinanden altid... ;)

Men held og lykke du! :)
Avatar billede gobbles Nybegynder
03. august 2004 - 23:20 #7
øhh ville du hjælpe med at få det til at gøre alle dage før dags dato "ikke valgbare"? (fik jeg formuleret det omvendt)

Ja har lavet et større projekt og forsøgt(uden hensyn til størrelse) at bruge så mange komponenter som muligt, lidt som et eksperiment...de er hmmm specielle, "god tjener men streng herre" hedder det vist..

tak!
Avatar billede pyroman Nybegynder
04. august 2004 - 00:09 #8
Here u go:


invalid_dates = ["20/08/2004",
"21/08/2004",
"22/08/2004",
"23/08/2004",
"24/08/2004"];

final_invalid_dates = [];

function convert (data){
  var d;
  var s;
  s = data.split ("/");
  d = new Date (s[2], parseInt(s[1],10)-1, s[0]);
  return d;
}
// convert into date object
curDate = new Date();
curDate.setHours(0,0,0,0);
final_invalid_dates[0] = {rangeEnd: curDate};
for(var a in invalid_dates){
    var tmpDate = convert(invalid_dates[a]);
    trace(tmpDate);
    if(tmpDate > curDate) final_invalid_dates.push(tmpDate);
}

DC.disabledRanges = final_invalid_dates;
Avatar billede gobbles Nybegynder
04. august 2004 - 00:12 #9
tusind tak...så er det vist også sengetid...go'nat
Avatar billede gobbles Nybegynder
04. august 2004 - 18:58 #10
Så blev der endelig tid til at teste...lang dag.... det virker perfekt tak igen..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester