Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужен JavaScript показывающий заданный текст на определенную дату (https://javascript.ru/forum/misc/25010-nuzhen-javascript-pokazyvayushhijj-zadannyjj-tekst-na-opredelennuyu-datu.html)

milanov 22.01.2012 08:14

Нужен JavaScript показывающий заданный текст на определенную дату
 
Например: "текст 1" должен показываться 23 января, "текст 2" показывается 24 января и т.д.

FINoM 22.01.2012 09:10

Получить дату с помощью конструктора Date, затем проверить и вывести.

melky 22.01.2012 12:12

Цитата:

Сообщение от milanov (Сообщение 152059)
Например: "текст 1" должен показываться 23 января, "текст 2" показывается 24 января и т.д.

var parse = function(x){ return new Date(x)};
data = { "текст 1" : parse("2011-11-23"), "текст 2" : parse("2011-01-24") };
alert( data[ prompt('Введите "текст 1" или "текст 2"', "текст 1") ].toLocaleString() )

рони 22.01.2012 13:07

melky,
на всякий случай
Цитата:

Для краткого формата даты допускается использование разделителей "/" или "-", но порядок элементов должен быть строго "месяц/день/год"

рони 22.01.2012 13:40

milanov,
Вариант ...
var data = function () {
        var a = new Date;
        return [a.getMonth(), a.getDate(), a.getFullYear()].join("-")
    },
text = {
    "0-22-2012": "text 1",
    "0-23-2012": "text 2"
};
text[data()] && alert(text[data()]);

milanov 22.01.2012 13:52

Цитата:

Сообщение от рони (Сообщение 152092)
milanov,
Вариант ...
var data = function () {
        var a = new Date;
        return [a.getMonth(), a.getDate(), a.getFullYear()].join("-")
    },
text = {
    "0-22-2012": "text 1",
    "0-23-2012": "text 2"
};
text[data()] && alert(text[data()]);

А как сделать чтобы text 1 показывался на странице, а не в алерте при заходе на страницу? Что нужно изменить здесь?

рони 22.01.2012 13:59

milanov,
alert замените на document.write а сам скрипт поставьте в то место где должна появится надпись.

milanov 22.01.2012 14:08

Цитата:

Сообщение от рони (Сообщение 152092)
milanov,
Вариант ...
var data = function () {
        var a = new Date;
        return [a.getMonth(), a.getDate(), a.getFullYear()].join("-")
    },
text = {
    "0-22-2012": "text 1",
    "0-23-2012": "text 2"
};
text[data()] && alert(text[data()]);

Спасибо, пошло!:victory:

melky 22.01.2012 14:08

Цитата:

Сообщение от рони (Сообщение 152087)
melky,
на всякий случай

Вот вот.я путаю. либо в американском формате, либо в русском.

devote 22.01.2012 14:12

Цитата:

Сообщение от melky
Вот вот.я путаю. либо в американском формате, либо в русском.

С американским стандартом. Который к вашему сведению всегда нормально браузерами воспринимался.

За вот эту чушь:
Цитата:

Сообщение от рони
но порядок элементов должен быть строго "месяц/день/год"

Глаза выколоть надо тому кто это написал.

melky 22.01.2012 14:13

Цитата:

Сообщение от devote (Сообщение 152111)
С американским стандартом. Который к вашему сведению всегда нормально браузерами воспринимался.

За вот эту чушь:
Глаза выколоть надо тому кто это написал.

то есть ГГ-ММ-ДД ? или ГГ-ДД-ММ?
надо понять просто один раз)

devote 22.01.2012 14:17

ГГ-ММ-ДД это американский стандарт, все базы данных его используют, даже куки его юзает, это стандартый американкий формат, часто еще время дописывают:
2011-01-29 23:43:20 GMT+03
2011-01-29T23:43:20 +03:00
И любой язык программирования его понимает

рони 22.01.2012 14:23

Цитата:

Сообщение от devote
Глаза выколоть надо тому кто это написал.

http://javascript.ru/Date.parse

иной формат даты поймут только Opera и Google Chrome

devote 22.01.2012 14:26

Цитата:

Сообщение от рони
http://javascript.ru/Date.parse

иной формат даты поймут только Opera и Google Chrome

Ну очень странно что другие его не понимают. Я конечно не проверял. Но проблем у меня с этим не возникало

GuardCat 25.01.2012 10:50

Цитата:

Сообщение от рони
иной формат даты поймут только Opera и Google Chrome

гггг/мм/дд понимают ещё, как минимум, IE8 и FF9.
IE привередничает, если использовать другие разделители. Смею предположить, что, используя "/" в качестве разделителя, можно пользоваться американским стандартом даты без опасений.


Часовой пояс GMT +3, время: 22:01.