Пример #1
0
function test_getDateForTimezoneOffset()
{
    appendTestMessage(NEW_LINE_LOG . " >> Tests with timezone offset..." . NEW_LINE_LOG);
    $testUser = '******';
    setConfiguration($testUser, CONFIG_KEY_TIMEZONE_OFFSET_MINUTES, '');
    appendTestMessage("time=nowknown, offset=''");
    $ret = getDateForTimezoneOffset($testUser, "nowknown", false);
    $expected = "";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("time=2013-03-25_14:43:01Z+01, offset=''");
    $ret = getDateForTimezoneOffset($testUser, "2013-03-25_14:43:01Z+01", false);
    $expected = "2013-03-25T14:43:01";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    appendTestMessage("time=2013-03-25_14:43:01Z+01, offset='', date only");
    $ret = getDateForTimezoneOffset($testUser, "2013-03-25_14:43:01Z+01", true);
    $expected = "2013-03-25";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // timezone offset Berlin summer
    setConfiguration($testUser, CONFIG_KEY_TIMEZONE_OFFSET_MINUTES, '-120');
    appendTestMessage("time=2013-03-25_14:43:01Z+01, offset='-120'");
    $ret = getDateForTimezoneOffset($testUser, "2013-03-25_14:43:01Z+01", false);
    $expected = "2013-03-25T16:43:01";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    setConfiguration($testUser, CONFIG_KEY_TIMEZONE_OFFSET_MINUTES, '120');
    appendTestMessage("time=2013-03-25_14:43:01Z+01, offset='120'");
    $ret = getDateForTimezoneOffset($testUser, "2013-03-25_14:43:01Z+01", false);
    $expected = "2013-03-25T12:43:01";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    setConfiguration($testUser, CONFIG_KEY_TIMEZONE_OFFSET_MINUTES, 'not_a_number');
    appendTestMessage("time=2013-03-25_14:43:01Z+01, offset='not_a_number'");
    $ret = getDateForTimezoneOffset($testUser, "2013-03-25_14:43:01Z+01", false);
    $expected = "2013-03-25T14:43:01";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    setConfiguration($testUser, CONFIG_KEY_TIMEZONE_OFFSET_MINUTES, '0');
    appendTestMessage("time=2013-03-25_14:43:01Z+01, offset='0'");
    $ret = getDateForTimezoneOffset($testUser, "2013-03-25_14:43:01Z+01", false);
    $expected = "2013-03-25T14:43:01";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // DateTime as milliseconds
    setConfiguration($testUser, CONFIG_KEY_TIMEZONE_OFFSET_MINUTES, '-120');
    appendTestMessage("time=1364225224111, offset='-120'");
    $ret = getDateForTimezoneOffset($testUser, "1364225224111", false);
    $expected = "2013-03-25T17:27:04";
    if ($ret == $expected) {
        appendTestMessage("- ok");
    } else {
        appendTestMessage("- failed");
        return false;
    }
    // The next line is just for debugging
    $ret = getDateForTimezoneOffset($testUser, "", false);
    resetConfig($testUser);
    resetConfig(ADMIN_NAME);
    return true;
}
Пример #2
0
/**
 * Get a single track for a user
 *
 * @param type $user
 * @param type $date '2012-03-03' (optional) Takes today if ommited
 * @param type $lastSentTrackPointTime a dateTime (optional). Retrurns only way points after that time.
 * @return string track as CSV
 */
function getTrack($user, $date, $lastSentTrackPointTime)
{
    if (isNullOrEmptyString($date)) {
        // $date = date("Y-m-d");
        $date = getDateForTimezoneOffset($user, '', true);
        logMessage("Missing parameter date. Take the track from today: {$date}");
    }
    $trackFile = USER_DIR . DIRECTORY_SEPARATOR . $user . DIRECTORY_SEPARATOR . $date . '.csv';
    if (!is_file($trackFile)) {
        logMessage("No track file {$trackFile} for user: "******"No line number given. Return whole track.");
        return $positionCSVlines;
    }
    $lastSentTime = strtotime($lastSentTrackPointTime);
    $resultBuffer = '';
    $lines = explode(PHP_EOL, $positionCSVlines);
    $count = count($lines);
    for ($i = 0; $i < $count; $i++) {
        // Compare the time
        // lat=47.50457163540115;lon=11.071390274487026;bearing=171.61432;speed=0.7065948;altitude=1067.652498529502;accuracy=6.0;time=2013-03-03T15:48:47.484
        $line = trim($lines[$i]);
        $timeStampStringInLine = findDateTime($line);
        if (!isNullOrEmptyString($timeStampStringInLine)) {
            $timeStampInLine = strtotime($timeStampStringInLine);
            if ($timeStampInLine <= $lastSentTime) {
                continue;
            }
        }
        if ($resultBuffer != '') {
            $resultBuffer .= PHP_EOL;
        }
        $resultBuffer .= $line;
    }
    return $resultBuffer;
}