[JavaScript] Datum melding vervangen met een stuk tekst

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • EN-IS
  • Registratie: Februari 2002
  • Laatst online: 10:53
Allereerst, ik ben een leek op javascript gebied, ik heb geen kennis van javascript of programmeren in javascript. Ik heb wat kennis in HTML, ietswat in php en C#. Hierdoor begrijp ik sommige stukken van javascript en kan ik het aanpassen, maar veel is jibberish voor mij.

Ik ben op dit moment een thema aan het maken op basis van een ander thema voor de iPhone, ik ben al een heel eind gekomen (zonder hulp) maar ik blijf tegen code aanlopen waar ik moeite mee heb.

Mijn probleem is het volgende, er is een variabele 'allday':
JavaScript:
1
events[i].allDay


Wanneer een kalendar item, dus een 'event' een allDay item is, dan geeft het een korte datum of lange datum weer:
JavaScript:
1
2
if(!events[i].allDay || events[i].start + 86400000 < events[i].end){
                var format = separateCalendarDays && end.isSameDay(start) ? clock_format_time : (events[i].allDay ? format_date_short : format_date_time_short_alt);


Ik heb geprobeerd om de datum te vervangen door een stuk tekst, die heb ik 'allDayText' genoemd;
JavaScript:
1
var alldayText = "<span class='sub2'> AAA </span>";


Dit probeer ik dus te doen in de volgende stukje code:
JavaScript:
1
html += "<div class='tblmainsub1alt';>"+locationText+start.format(format_date_alt)+string_time_from+start.format(end.isSameDay(start) ? clock_format_time : alldayText)+string_time_to+end.format(clock_format_time)+"</div>"; 



Alleen dat gebeurt niet, maar het stukje tekst wordt omgezet naar datum (php.net/date). Ik weet niet hoe ik dat kan opvangen of omzeilen.
Dat gebeurt volgens mij in dit stukje code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
            if(!events[i].allDay || events[i].start + 86400000 < events[i].end){
                var format = separateCalendarDays && end.isSameDay(start) ? clock_format_time : (events[i].allDay ? format_date_short : format_date_time_short_alt);
                var startText = start.format(format);
                var endText = end.format(format);
                if(displayRelativeTimes && (start.isSameDay(now) || start < now)){
                    if(start > now){
                        var relativeText = "<span class='relativeTime sub2'>("+string_begins_prefix+"<span id=\""+dayID+"_"+i+"\"></span>"+string_begins_suffix+")</span>";
                        relativeTimes.push([dayID+"_"+i, start, events[i].allDay, events[i].allDay, string_now]);
                        var timeout2 = start.getTime() - now.getTime();
                        if(timeout2 < timeout){
                            timeout = timeout2;
                        }
                    }else if(events[i].allDay && start.isSameDay(currentDate)){
                        var relativeText = "<span class='relativeTime sub2'> ("+string_ends_prefix+"<span id=\""+dayID+"_"+i+"\"></span>"+string_ends_suffix+")</span>";
                        relativeTimes.push([dayID+"_"+i, end, true, false, '']);
                    }else{
                        var relativeText = "<span class='relativeTime sub2'>("+string_began_prefix+"<span id=\""+dayID+"_"+i+"_start\"></span>"+string_began_suffix+" | "+string_ends_prefix+"<span id=\""+dayID+"_"+i+"_end\"></span>"+string_ends_suffix+")</span>";
                        relativeTimes.push([dayID+"_"+i+"_start", start, events[i].allDay, false, string_justNow]);
                        relativeTimes.push([dayID+"_"+i+"_end", end, events[i].allDay, false, string_now]);

                        var timeout2 = end.getTime() - now.getTime();
                        if(timeout2 < timeout){
                            timeout = timeout2;
                        }
                    }
                }else{ 
                    var relativeText = '';
                }
            }


Kan iemand mij helpen? Ik heb google al gebruikt en gisternacht op verschillende tutorial websites gekeken, ik kom er niet uit, en helaas niemand in mijn directe omgeving die wat van javascript wat af weet. Bedankt!

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je al eens begint met te zoeken naar javascript. Java is héél iets anders dan javascript. Verder zien we ook graag een topictitel die de lading dekt; ondanks de foute [Java] tag zegt '[Java leek]' natuurlijk ook helemaal niets. Ik zie dan ook graag een voorstel voor een nieuwe titel in een topicreport (Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/icon_hand.gif bovenaan de pagina).

[ Voor 81% gewijzigd door RobIII op 10-05-2010 15:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • EN-IS
  • Registratie: Februari 2002
  • Laatst online: 10:53
RobIII schreef op maandag 10 mei 2010 @ 15:06:
Als je al eens begint met te zoeken naar javascript. Java is héél iets anders dan javascript. Verder zien we ook graag een topictitel die de lading dekt; ondanks de foute [Java] tag zegt '[Java leek]' natuurlijk ook helemaal niets. Ik zie dan ook graag een voorstel voor een nieuwe titel in een topicreport ([afbeelding] bovenaan de pagina).
Dank voor je uitleg, ik bedoel ook javascript, maar goed, je hebt gelijk, zijn twee verschillende dingen. Ik zal ook een nieuw topictitel aanvragen, kon niks passends verzinnen, me creativiteit is op een laag pitje vandaag... :z

//EDIT: nou, ik zie zelf nu ook de titel, het was niet de bedoeling dat er alleen maar "Java Leek" zou staan. |:(

[ Voor 6% gewijzigd door EN-IS op 10-05-2010 15:17 ]


Acties:
  • 0 Henk 'm!

  • pieturp
  • Registratie: April 2004
  • Laatst online: 27-08 14:18

pieturp

gaffa!

Klassiek voorbeeldje debuggen, lijkt me.

Probeer 'ns op wat plekken een alert(), mocht je geen debugger ala venkman, firebug o.i.d. kunnen gebruiken. (Dat lijkt me waarschijnlijk, aangezien je bezig bent voor een iPhone app)

Probeer je code ook 'ns te isoleren. Je kunt dit waarschijnlijk gewoon reduceren tot een werkbare webpagina. Die kan je dan gemakkelijker met één van bovengenoemde tools debuggen. Breakpointje her en der, en je moet er denk ik wel uit kunnen komen.

... en etcetera en zo


Acties:
  • 0 Henk 'm!

  • EN-IS
  • Registratie: Februari 2002
  • Laatst online: 10:53
pieturp schreef op dinsdag 11 mei 2010 @ 00:22:
Klassiek voorbeeldje debuggen, lijkt me.

Probeer 'ns op wat plekken een alert(), mocht je geen debugger ala venkman, firebug o.i.d. kunnen gebruiken. (Dat lijkt me waarschijnlijk, aangezien je bezig bent voor een iPhone app)

Probeer je code ook 'ns te isoleren. Je kunt dit waarschijnlijk gewoon reduceren tot een werkbare webpagina. Die kan je dan gemakkelijker met één van bovengenoemde tools debuggen. Breakpointje her en der, en je moet er denk ik wel uit kunnen komen.
Bedankt voor je tips, ik zal het eens proberen!

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Javascript hoort ook bij de buren
PRG->WEB

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
ik zou geen if/else ( ? xx : yy) constructie beginnen binnen een assignment (+=).

Verder: valt je end niet op dezelfde dag als je start?

Acties:
  • 0 Henk 'm!

  • EN-IS
  • Registratie: Februari 2002
  • Laatst online: 10:53
moozzuzz schreef op dinsdag 11 mei 2010 @ 14:12:
ik zou geen if/else ( ? xx : yy) constructie beginnen binnen een assignment (+=).

Verder: valt je end niet op dezelfde dag als je start?
Wat zou ik daar in plaats van kunnen gebruiken?

Ja ze vallen op hetzelfde dag, het ziet er zo uit (output):
code:
1
2
TitelKalenderItem
LocatieText: Locatie DatumDag DatumMaand "van" DatumTijd "tot" DatumTijd


Maar wanneer het een allday event is, dan start (00:00) en eind (00:00) het op hetzelfde dag, dat wil ik opvangen en het zo eruit laten zien:
code:
1
2
TitelKalenderItem
LocatieText: Locate DatumDag "AllDay Event"


Maar dat moet dus geen invloed hebben op een normale afspraak met een begintijd en eindtijd, en moet er niks verschuiven. Daarom leek mij een if/else constructie makkelijker, alleen wanneer ik dat doe, dan wordt de tekst "AllDay Event" veranderd naar datum, denk dat het komt omdat ik eerst gebruik maak van de functie -start.format- die de datum definieert. Ik heb er gister nog tijd aan besteed, maar kwam er niet uit.

Dit is hoe het eruit ziet met de huidige assignment:
Afbeeldingslocatie: http://files.en-is.com/files/iPhone/Screenshots/CalendarSection.jpg

Economy Class en Movie Night zijn beiden een allday event. De rest heeft een start en eind tijd.

[ Voor 8% gewijzigd door EN-IS op 11-05-2010 15:08 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

En wat heb je al geprobeerd om dat voor elkaar te krijgen dan? Lijkt me dat je dit wel kan detecteren namelijk.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • EN-IS
  • Registratie: Februari 2002
  • Laatst online: 10:53
MueR schreef op dinsdag 11 mei 2010 @ 15:34:
En wat heb je al geprobeerd om dat voor elkaar te krijgen dan? Lijkt me dat je dit wel kan detecteren namelijk.
Nou origineel ziet het er heel anders uit, en ik ben een week of anderhalf bezig geweest om dit te krijgen, zoals ik het al zei, ik ben een leek op javascript gebied. En hoe kom je achter dingen, ik doe dat door gewoon code aan te passen, stukjes code wat ik wel snap en dan bekijk ik het resultaat, aan de hand daarvan weet ik, waar ik moet zijn.

Ik ben nu ineens veel verder dan ik een uur geleden was, ik heb het nu voor elkaar gekregen (via een ander variabele/stukje code) om de "AllDay Event" tekst te laten zien, alleen is de datum melding nu weer terug bij af dus:
13:00 28/05/10 - 14:00 28/05/10

En dat ga ik nu proberen terug te krijgen naar:
28 Mei van 13:00 tot 14:00


//EDIT:
@MueR
, je had gelijk... Ik had toch beter uit me doppen moeten kijken, het is gelukt... ik snap het nu beter.

De variable
starttext = start.format(format) en endtext = end.format(format)

hier werd dus de datum gedefinieerd, omdat ik de datum uit elkaar wilde en anders het wilde weergeven, ging ik aan de slag in de html assignment gedeelte (+=). Daar ben ik een week mee bezig geweest, dat had niet gehoeven, ik had dus beter moeten kijken waar wat werd gedefinieerd.


het was zo:
JavaScript:
1
2
                var startText = start.format(format);
                var endText = end.format(format);


Ik heb het nu zo:
JavaScript:
1
2
                var startText = string_time_from+start.format(clock_format_time);
                var endText = string_time_to+end.format(clock_format_time);


en hier wordt het allemaal uitgevoerd:
JavaScript:
1
2
3
4
5
6
                if(startText){                  
                    startText = "<span class='tblmainsub1alt'"+(displayRelativeTimes ? 1 : 2)+"'>" + startText + (endText ? " to " + endText : '') + "</span>";
                }

                html += "<div style='display:table-cell;'>"+titleText+relativeText+"</div>";
                html += "<div class='tblmainsub1alt';>"+locationText+start.format(format_date_alt)+"&nbsp;"+startText+"</div>";



Nu ga ik dit weer implementeren in het stukje waar de variabele "Seperate times on left" zit, ik hoop dat het gaat lukken :)

[ Voor 43% gewijzigd door EN-IS op 11-05-2010 17:10 ]

Pagina: 1