[Javascript] Uitgebreid last modified script

Pagina: 1
Acties:

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Ik wil een uitgebreid last modified script maken, maar ik kan nergens op t web vinden hoe dat moet.

Het idee is dus om eerst de dag weer te geven, als die kleiner is dan 10 moet er een nul bij.
Dan de maand, als die kleiner is dan 10 een nul erbij.
Dan het jaar.
Dan het uur, als die kleiner is dan 10 een nul erbij.
Dan de minuten, als die kleiner zijn dan 10 een nul erbij.
En dan de seconden, als die kleiner zijn dan 10 een nul erbij.

Nou heb ik al n beetje lopen vogelen (zie hieronder), maar t wil gewoon niet werken.

<SCRIPT LANGUAGE="text/javascript">
<!--
myDate = new Date(document.lastModified);
displayDate = myDate.getDate() + "-" + myDate.getMonth()+1 + "-" + myDate.getFullYear() + " " + myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds()
if (myDate.getDate < 10)
{
displayDate = "0" + myDate.getDate()
}
document.write("<font color=ffff00>")
document.write("<b>Deze pagina is het laatst bijgewerkt op: " + displayDate)
document.write (".</b>");
document.write("</font>")
//-->
</SCRIPT>

Before me there was many, after me there will be none. I'm the one!


Verwijderd

Ik heb er twee gedaan, de rest mag jij doen ;) :
code:
1
2
3
4
5
6
7
var dag=myDate.getDate();
if (dag< 10)dag = "0" + dag;
var maand=myDate.getMonth()
if (maand< 10)maand = "0" + maand;

displayDate =  dag+ "-" + maand + "-" + myDate.getFullYear() + " " + 
myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds()

[ Voor 15% gewijzigd door Verwijderd op 02-05-2003 19:57 ]


  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Het bovenstaande werkt niet bij mij. Ik heb IE 6.0.

Before me there was many, after me there will be none. I'm the one!


Verwijderd

Je hebt dit staan:
<SCRIPT LANGUAGE="text/javascript">
Dat moet worden: <script type="text/javascript">

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Verwijderd schreef op 02 May 2003 @ 20:14:
Je hebt dit staan:
<SCRIPT LANGUAGE="text/javascript">
Dat moet worden: <script type="text/javascript">
Ja, sorry, daar kwam ik net ook achter. Maar dan werkt het nog steeds niet.
Werkt het bij jou wel zo? Zo ja, welke browserversie?

Ik heb nu dus dit staan:

<script type="text/javascript">
var dag=myDate.getDate();
if (dag< 10)dag = "0" + dag;
var maand=myDate.getMonth()
if (maand< 10)maand = "0" + maand;

displayDate = dag+ "-" + maand + "-" + myDate.getFullYear() + " " +
myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds()
</script>

[ Voor 54% gewijzigd door mrbombastic op 02-05-2003 20:17 ]

Before me there was many, after me there will be none. I'm the one!


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

String(dag).length < 2 lijkt mij beter.
Maar is er niet, net als bij php, de functie str_pad? Die doet dat ook
str_pad($string, 2, "0") doet dat ook.
JavaScript:
1
2
3
4
5
6
7
8
9
function strPad(str, fill, length)
{
  res = str;
  for (var x = str.length; x <= length; x++)
  { 
     res = fill + res;
  }
  return res;
}

En dan
dag = strPad(dag, "0", 2);
Zoiets :D
Niet getest hoor.

[ Voor 22% gewijzigd door Guillome op 02-05-2003 20:19 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Werkt het nog steeds niet? Ik gebruik ook IE6 hier.
Dit werkt bij mij:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html><head></head><body>
<script type="text/javascript">
myDate = new Date(document.lastModified);
var dag=myDate.getDate();
if (dag< 10)dag = "0" + dag;
var maand=myDate.getMonth()
if (maand< 10)maand = "0" + maand;

displayDate =  dag+ "-" + maand + "-" + myDate.getFullYear() + " " + myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds()
document.write("<b>Deze pagina is het laatst bijgewerkt op: " + displayDate);
document.write ("<\/b>");
</script>
</body></html>

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
myDate = new Date(document.lastModified);

dit moest er dus nog boven :)

Nog een probleempje nu. Bij het aantal maanden moet 1 opgeteld worden.
Normaal gesproken zou je dan achter maand +1 moeten kunnen zetten.
Maar ook dit lukt me weer niet. Ipv 05 (mei) krijg ik nu 041.
Die 1 wordt er dus niet bij opgeteld, maar erachter gezet.

Before me there was many, after me there will be none. I'm the one!


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ditte werkt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    <SCRIPT language="JavaScript">
    <!--
    myDate = new Date(document.lastModified);
    displayDate = padStr(myDate.getDate()) + '-' + padStr(myDate.getMonth()+1) + '-' + myDate.getFullYear() + ' ' +
    padStr(myDate.getHours()) + ':' + padStr(myDate.getMinutes()) + ':' + padStr(myDate.getSeconds());

    document.write('<font color="ffff00">');
    document.write('<b>Deze pagina is het laatst bijgewerkt op: ' + displayDate);
    document.write ('.<\/b>'); 
    document.write('<\/font>');
    
    function padStr(sNum) {
        sNum = '0' + sNum;
        return sNum.substr(sNum.length-2,2);
    }
    //-->
    </SCRIPT>


Ta tata Taaaaaaaa! :o

[ Voor 34% gewijzigd door RobIII op 02-05-2003 20:40 ]

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


Verwijderd

var maand=myDate.getMonth()+1;
Beetje stom van mij. Ik smeet die +1 weg, maar in javascript worden de maanden geteld vanaf 0. Had ik niet gezien.

edit:
O ja, het is verstandig om sluit-tags binnen script-tags te escapen.
document.write('</b>'); wordt dan document.write('<\/b>');
Ik geloof niet dat veel browsers nog in de war raken van niet geescapede sluit-tags, maar het kan zeker geen kwaad om het wel te doen.

edit:edit: bovenstaande functie is handig.

[ Voor 60% gewijzigd door Verwijderd op 02-05-2003 20:36 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
...En deze is wat uitgebreider, met als parameters:

sPad - De string de ge-pad moet worden
iLen - De lengte van de uiteindelijke string
sChar - Het karakter dat wordt gebruikt om te padden...

JavaScript:
1
2
3
4
5
6
function padStr(sPad, iLen, sChar) {
    var sTMP = '';
    for (var t=0;t<iLen;t++) sTMP += sChar; 
    sPad = sTMP + sPad;
    return sPad.substr(sPad.length-iLen,iLen);
}


Jouw code zou dan worden:
JavaScript:
1
2
3
displayDate = padStr(myDate.getDate(),2,'0') + '-' + padStr(myDate.getMonth()+1,2,'0') +
'-' + myDate.getFullYear() + ' ' + padStr(myDate.getHours(),2,'0') + ':' + 
padStr(myDate.getMinutes(),2,'0') + ':' + padStr(myDate.getSeconds(),2,'0');

[ Voor 25% gewijzigd door RobIII op 02-05-2003 20:51 ]

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


Verwijderd

Functie schrijven...
JavaScript:
1
2
3
4
5
6
7
8
function _strlpad(padStr, len)
{
   str = this.toString();

   while (str.length < len) str = padStr + str;

   return str.substr(str.length - len);
}

Grof geweld gebruiken...
JavaScript:
1
2
        
Object.prototype.strlpad = _strlpad;

En dan..
JavaScript:
1
alert(new Date().getDate().strlpad('0', 10));

Woei :P

[edit]
Creatief met Javascript:
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
function _strlpad(padStr, len)
{
   str = this.toString();

   while (str.length < len) str = padStr + str;

   return str.substr(str.length - len);
}

function _toFormat(formatStr)
{
   formatStr = formatStr.replace(/%Y/g, this.getFullYear());
   formatStr = formatStr.replace(/%m/g, (this.getMonth() + 1).strlpad('0', 2));
   formatStr = formatStr.replace(/%d/g, this.getDate().strlpad('0', 2));
   formatStr = formatStr.replace(/%H/g, this.getHours().strlpad('0', 2));
   formatStr = formatStr.replace(/%M/g, this.getMinutes().strlpad('0', 2));
   formatStr = formatStr.replace(/%s/g, this.getSeconds().strlpad('0', 2));

   return formatStr;
}
        
Object.prototype.strlpad = _strlpad;
Date.prototype.toFormat = _toFormat;

document.write(new Date().toFormat('%d-%m-%Y %H:%M:%s'));

[ Voor 71% gewijzigd door Verwijderd op 02-05-2003 21:26 . Reden: m en M verwisseld, dit is gebruikelijker.. | % toegevoegd voor meer gemak... ]


  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
RobIII schreef op 02 mei 2003 @ 20:29:
Ditte werkt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    <SCRIPT language="JavaScript">
    <!--
    myDate = new Date(document.lastModified);
    displayDate = padStr(myDate.getDate()) + '-' + padStr(myDate.getMonth()+1) + '-' + myDate.getFullYear() + ' ' +
    padStr(myDate.getHours()) + ':' + padStr(myDate.getMinutes()) + ':' + padStr(myDate.getSeconds());

    document.write('<font color="ffff00">');
    document.write('<b>Deze pagina is het laatst bijgewerkt op: ' + displayDate);
    document.write ('.<\/b>'); 
    document.write('<\/font>');
    
    function padStr(sNum) {
        sNum = '0' + sNum;
        return sNum.substr(sNum.length-2,2);
    }
    //-->
    </SCRIPT>


Ta tata Taaaaaaaa! :o
Deze werkt perfect!

Je volgende post werkte niet bij mij en ook die van Cheatah kreeg ik niet aan de praat.

Before me there was many, after me there will be none. I'm the one!

Pagina: 1