---
metadata:
  - name: generator
    content: Diplodoc Platform v5.64.0
alternate:
  - https://yandex.com.tr/dev/games/doc/en/sdk/sdk-server-time.md
  - https://yandex.com.tr/dev/games/doc/hi/sdk/sdk-server-time.md
  - https://yandex.com.tr/dev/games/doc/ko/sdk/sdk-server-time.md
  - https://yandex.com.tr/dev/games/doc/ru/sdk/sdk-server-time.md
  - https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-server-time.md
  - https://yandex.com.tr/dev/games/doc/vi/sdk/sdk-server-time.md
  - https://yandex.com.tr/dev/games/doc/zh/sdk/sdk-server-time.md
  - href: https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-server-time.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.com.tr/dev/games/doc/tr/llms.txt?revision=r21861215
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/games/doc/tr/llms.txt?revision=r21861215

# Sunucu zamanı

<!-- source: tr/_includes/script-common.md -->
<!-- source: tr/_includes/script/index-js.md -->

<!-- endsource: tr/_includes/script/index-js.md -->

<!-- source: tr/_includes/script/requirements-js.md -->

<!-- endsource: tr/_includes/script/requirements-js.md -->

<!-- source: tr/_includes/script/image-modal-js.md -->

<!-- endsource: tr/_includes/script/image-modal-js.md -->
<!-- endsource: tr/_includes/script-common.md -->

Yandex Oyun SDK'sı, sunucuyla senkronize edilmiş zamanı almanızı sağlar. Metot şunlar için faydalıdır:

<!-- source: tr/_includes/sdk/common-with-plugins.md -->
- **Hile koruması**: kullanıcılar cihazlarındaki saati değiştirerek oyun süreçlerini etkileyemez.
- **Oyun etkinlikleri**: buna dayanarak, güvenilir bir zaman kaynağı gerektiren etkinlikler ve ödüller ekleyebilirsiniz (örneğin, günlük veya haftalık bonuslar, mevsimsel etkinlikler ve görevler).
<!-- endsource: tr/_includes/sdk/common-with-plugins.md -->

## ysdk.serverTime() {#server-time}

Bu yöntem, tüm cihazlarda aynı olan, milisaniye cinsinden `timestamp`, sunucu zamanını döndürür. Sonuç formatı `Date.now()`'a benzer, ancak sonuncusu, sunucu zamanından farklı olabilecek ve oyuncular tarafından hile yapmaya karşı korunmayan kullanıcının cihazının zamanını döndürür. `ysdk.serverTime()` yöntemi, cihazdaki sistem saatinin değiştirilmesine karşı dayanıklıdır ve bu nedenle daha güvenilirdir.

Aktüel zamanı her ihtiyaç duyduğunuzda bu yöntemi çağırın.

{% list tabs %}

- Await ile kullanım

    ```javascript showLineNumbers
    const ysdk = await YaGames.init();

    // Sunucu ile senkronize edilmiş zamanı ms cinsinden döndürür.
    ysdk.serverTime(); // Örneğin, 1720613073778.

    // Bir süre sonra tekrar çağır.
    ysdk.serverTime(); // Örneğin, 1720613132635.
    ```

- Bekleme olmadan seçenek

    ```javascript showLineNumbers
    YaGames.init()
        .then((ysdk) => {
            // Sunucu ile senkronize edilmiş zamanı döndürür.
            ysdk.serverTime(); // Örneğin, 1720613073778.

            // Zaman geçtikten sonra tekrar çağırın.
            ysdk.serverTime(); // Örneğin, 1720613132635.
        });
    ```

{% endlist %}

## Günlük ödüllerin uygulanması için örnekler {#reward-examples}

- Güvenilir sunucu saatini almak için `ysdk.serverTime()` kullanılır.
- Veriler, [player.setData()](https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-player.md#ingame-data) ile saklanır.
- Ödülün tekrar alınmasına karşı koruma uygulanır.
- Zaman güvenli bir şekilde karşılaştırılır.

{% note warning %}

Örneklerdeki `giveReward()` fonksiyonu, oyuncuya ödül vermek için kendi gerçekleştireceğiniz bir fonksiyondur.

{% endnote %}

### Oyunu en son ziyaret ettikten 24 saat sonra ödül {#twenty-four-hours-reward}

```javascript showLineNumbers
YaGames.init()
    .then(async (ysdk) => {
        // Oyuncunun başlatılması.
        const player = await ysdk.getPlayer();

        // Kayıtlı verileri alıyoruz.
        const data = await player.getData();

        // Güncel sunucu zamanı.
        const currentTime = ysdk.serverTime();

        // Son ödül alma zamanı (yoksa 0 kullanılır).
        const lastRewardTime = data.lastRewardTime || 0;

        // 24 saat milisaniye cinsinden.
        const DAY_IN_MS = 24 * 60 * 60 * 1000;

        if (currentTime - lastRewardTime >= DAY_IN_MS) {
            // 24 saatten fazla geçmiş — ödül verilebilir.
            await giveReward(); // Ödül verme fonksiyonunuz.

            // Yeni ödül alma zamanını kaydediyoruz.
            await player.setData({
                lastRewardTime: currentTime
            });
        }
    });
```

### Ödül, her takvim günü yalnızca bir kez verilir (UTC'ye göre gece yarısında sıfırlanır) {#calendar-day-reward}

```javascript showLineNumbers
YaGames.init()
    .then(async (ysdk) => {
        // Oyuncunun başlatılması.
        const player = await ysdk.getPlayer();

        // Kayıtlı verileri alıyoruz.
        const data = await player.getData();

        // Güncel sunucu zamanı.
        const currentTime = ysdk.serverTime();

        // Son ödül tarihini "YYYY-MM-DD" formatında alıyoruz.
        const lastRewardDate = data.lastRewardDate || '';

        // Mevcut tarihi "YYYY-MM-DD" formatında alıyoruz.
        const currentDate = new Date(currentTime).toISOString().split('T')[0];

        if (currentDate !== lastRewardDate) {
            // Bugün ödül henüz alınmadı.
            await giveReward(); // Ödül verme fonksiyonunuz.

            // Ödül alım tarihini kaydediyoruz.
            await player.setData({
                lastRewardDate: currentDate
            });
        }
    });
```

---

<!-- source: tr/_includes/sdk/sdk-support.md -->
{% note info %}

Destek ekibi, hazır bir oyunun Yandex Oyunlar platformunda yayınlanmasına yardımcı olur. Geliştirme ve test etmeyle ilgili uygulamalı sorulara [Discord topluluğunda](https://discord.com/invite/wU4p3whr4T){.external} diğer geliştiriciler yanıt verir.

{% endnote %}

Yandex Oyun SDK'sını kullanırken bir sorunla karşılaşırsanız veya bir sorunuz olursa destek ekibiyle iletişime geçin:

<!-- source: tr/_includes/button-chat.md -->
<a href="https://yandex.com/chat/#/user/a4fa5c06-75db-9b38-6eea-b1673785f7d5">
  <span class="button">Sohbete yaz</span>
</a>
<!-- endsource: tr/_includes/button-chat.md -->
<!-- endsource: tr/_includes/sdk/sdk-support.md -->
