Hirdetés

Új hozzászólás Aktív témák

  • Mr Dini
    addikt

    Szia!

    A probléma az, hogy a Variable Convert csak kötőjellel elválasztott dátumot képes konvertálni. Tehát a 2017. 02. 11. Nem jó, próbáld átírni 2017-02-11 -re, vagy közvetlen a setelés után illessz be egy Variable Search and Replace függvényt, és patternnek írd be a ". "-t, a kötőjelet pedig írd be a Replace with mezőbe. Aztán kell még egy replace, ami az utolsó pontot is lecseréli, de azt nem kötöjelre, hanem a semmire. Azaz a Replace with maradjon üres!

    Helyesbítek! A helyes dátum minta a hónap-nap-év, sajnos a Convert nem toleráns. Ha máshogy van megadva a dátum, már nem tud vele mit kezdeni.

    De, hogy ne maradj JS nélkül, írtam Neked a linkelt logika alapján egy példakódot :D:

    ///Mr Dini's Day Counter
    startDate = "2017. 02. 03."
    today = global('%DATE')
    startDate = prompt('Írd be a kezdés idejét:',startDate);

    startDate = startDate.replace(/(.*[^.])+\. (.*[^.])+\. (.*[^.])+./,"$2-$3-$1").replace(/0([0-9]+\-)/g,'$1');
    startDateSec = convert(startDate,"datetimeToSec");
    todaySec = convert(today,"datetimeToSec");
    flash('Az azóta eltelt napok száma: '+Math.floor((todaySec-startDateSec)/24/60/60));

    Tulajdonképpen a kódom lényege a replace, ami átalakítja a dátumot év. hónap. nap.-ról a megfelelő dátumra.

    Megjegyzések:
    1. Ha nem szeretnél prompt-ot, kommenteld ki azt a sort! ;)
    2. Ez a kódrész: .replace(/0([0-9]+\-)/g,'$1') nyugodtan törölhető. Csak, mivel nem akart működni, így azt hittem, a 0-val kezdődő hónapokat, plusz napokat át kell alakítani úgy, hogy ne 0-van kezdődjön. De, mint kiderült, más volt a gond. Viszont benthagytam, mert így 100% ugyanúgy néz ki, mint a Taskeres DATE változó.
    3. A végén a flashnél betettem egy Math.floor-t, azaz egy lefele kerekítést, mert azt vettem észre, hogy régi időpontoknál vannak tizedesjegyek is.

    Használd egészséggel és ha valami nem világos, kérdezz bátran! ;)

Új hozzászólás Aktív témák