2017-02-13 10 views
0

У меня есть проект сборки phoneGap, который каждый день открывает конкретную страницу, принимая значение даты с телефона.открытие страницы specefic на DOM нагрузка по дате vaule, javascript, phonegap

Его, как полный список дел в год, записан на 365 страницах, и я хочу показать одну страницу каждый день, которая соответствует дате сегодняшнего дня.

У меня 365 HTML-страниц, таких как 1.html 2.html и т. Д. Когда пользователь открывает приложение, он должен проверить дату и открыть соответствующую html-страницу соответственно.

Для примера: если сегодняшняя дата - 1 января, когда пользователь открывает приложение, он должен открыть 1.html. если его второй второй должен открыть 2.html и т. д.

Я попытался это:

document.addEventListener('DOMContentLoaded', function() { 
open() }, false); 

function open(){ 
window.open ('1.html','_self',false); 
} 

это не будет работать, и я не знаю, как сохранить сегодняшнюю значение даты в переменной, сравнить его и передать результат, чтобы открыть конкретную страницу соответственно.

Может ли кто-нибудь помочь мне, как этого достичь? Должен ли я использовать массивы? или если заявления? пожалуйста, помогите .. Очень ценим.

+0

Возможно дубликат [* Расчет Jday (Юлианский день) в JavaScript *] (http://stackoverflow.com/questions/11759992/calculating-jdayjulian-day-in-javascript). – RobG

ответ

0

Просто создать функцию, чтобы получить номер дня текущей даты, как:

var dayNumber = function(){ 
    var now = new Date(); 
    var start = new Date(now.getFullYear(), 0, 0); 
    var diff = now - start; 
    var oneDay = 1000 * 60 * 60 * 24; 
    var day = Math.floor(diff/oneDay); 
    console.log('Day of year: ' + day); 
    } 

Так после этого вы можете открыть страницу HTML вы хотите так:

document.addEventListener('DOMContentLoaded', function() { 
open() }, false); 

function open(){ 
var number = dayNumber(); 
var html = number + '.html'; 
window.open (html,'_self',false); 
} 
+0

Большое спасибо за ответ. Это сделало большую часть трюка, но переменное число не определено. Я не получил значение dayNumber(). Я просто объединил оба в функцию open() и назвал . Это сработало. Еще раз спасибо –

+0

Нет проблем с удовольствием! –

+0

На самом деле вам пришлось поместить «день возврата» в конце функции dayNumber, которая была моей плохой. –

0

Изменить свой код, ниже. Это будет работать. getDAYNumber() - это функция, которая будет принимать дату и возвращает номер дня.

Date.prototype.getDAYNumber = function() { 
var onejan = new Date(this.getFullYear(),0,1); 
return Math.ceil((this - onejan)/86400000); 
} 

document.addEventListener('DOMContentLoaded', function() { 
open() }, false); 


function open(){ 
var daynum = new Date().getDAYNumber(); 
var htmlPage = daynum+".html"; 
window.open (htmlPage,'_self',false); 
}