Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17

Откуда берет дату?

26.07.2016, 14:38. Показов 1822. Ответов 16

Студворк — интернет-сервис помощи студентам
Здравствуйте, я недавно только начал изучать php, и наткнулся на один php файл, точнее плагин на вордпресс, вот хотел его русифицировать, получилось только сделать вводные данные на русском, а вот после расчета, при выводе результата даты выводит на англ, то есть месяц, порылся в php файле не смог найти откуда он берет эту дату, понял что связано это с базой данных, но не пойму куда именно
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<?php
/*
Plugin Name: Ovulation Predictor
Plugin URI: http://calendarscripts.info/ovulation-predictor-wordpress-plugin.html
Description: This plugin displays functional ovulation and due date predictor. It can be used from women to check their future fertile time and due date.
Author: CalendarScripts
Version: 1.2
Author URI: http://calendarscripts.info
*/ 
 
/*  Copyright 2008  CalendarScripts (email : info@calendarscripts.info)
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
 
 
function ovpredct_add_page()
{
    add_submenu_page('plugins.php', 'Ovulation Predictor', 'Ovulation Predictor', 8, __FILE__, 'ovpredct_options');
}
 
// ovpredct_options() displays the page content for the Ovpredct Options submenu
function ovpredct_options($widget_mode=false) 
{
    // Read in existing option value from database
    $ovpredct_table = stripslashes( get_option( 'ovpredct_table' ) );
    
    // See if the user has posted us some information
    // If they did, this hidden field will be set to 'Y'
    if( $_POST[ 'ocalc_update' ] == 'Y' ) 
    {
        // Read their posted value
        $ovpredct_table = $_POST[ 'ovpredct_table' ];
        
 
        // Save the posted value in the database
        update_option( 'ovpredct_table', $ovpredct_table );
        
        // Put an options updated message on the screen
        ?>
        <div class="updated"><p><strong><?php _e('Options saved.', 'ovpredct_domain' ); ?></strong></p></div>
        <?php       
     }
        
         // Now display the options editing screen
            echo '<div class="wrap">';      
            // header
            echo "<h2>" . __( 'Ovulation Predictor Options', 'ovpredct_domain' ) . "</h2>";     
            // options form         
            ?>
        
        <?php if(!$widget_mode):?>
        <form name="form1" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
        <?php endif;?>    
        <input type="hidden" name="ocalc_update" value="Y">
        
        <p><?php _e("<p>You can use this calculator in two ways: as a standard Wordpress widget or by placing it in your post or page. For the latter please include the tag <b>[ovulation-predictor]</b> in the content of your page or post and the calculator will appear there.</p>
        <p>These options are accessible both from the \"Ovulation Predictor\" page under your Plugins menu or from your Widgets section.</p>
        <p>Check out some more of our <a href='http://calendarscripts.info/free-calculators.html' target='_blank'>free calculators</a>.</p>
        <p>CSS class definition for the predictor wrapper div &lt;div&gt;:</p>", 'ovpredct_domain' ); ?> 
        <textarea name="ovpredct_table" rows='5' cols='70'><?php echo stripslashes ($ovpredct_table); ?></textarea>
        </p><hr />
        
        <?php if(!$widget_mode):?>
            <p class="submit">
            <input type="submit" name="Submit" value="<?php _e('Update Options', 'ovpredct_domain' ) ?>" />
            </p>
            
            </form>
        <?php endif;?>
        </div>
        <?php
}
 
function ovpredct_datechooser($name,$value="")
{
    $months=array('','January','February','March','April','May','June','July','August',
    'September','October','November','December');
    
    if(empty($value)) $value=date("Y-m-d");
    
    $parts=explode("-",$value);
    
    $day=$parts[2]+0;
    $month=$parts[1]+0;
    $year=$parts[0];
    
    $chooser="";
    
    $chooser.="<select name=".$name."month>";
    for($i=1;$i<=12;$i++)
    {
        if($i==$month) $selected='selected';
        else $selected='';
        $chooser.="<option $selected value=$i>$months[$i]</option>";
    }
    $chooser.="</select> / ";
    
    $chooser.="<select name=".$name."day>";
    for($i=1;$i<=31;$i++)
    {
        if($i==$day) $selected='selected';
        else $selected='';
        $chooser.="<option $selected>$i</option>";
    }
    $chooser.="</select> / ";
    
    $chooser.="<select name=".$name."year>";
    for($i=(date("Y")-1);$i<=2050;$i++)
    {
        if($i==$year) $selected='selected';
        else $selected='';
        $chooser.="<option $selected>$i</option>";
    }
    $chooser.="</select> "; 
    
    return $chooser;
}
 
function ovpredct_generate_html()
{
    //construct the calculator page 
    $ovcalc="<style type=\"text/css\">
    .ovpredct_table
    {
        ".get_option('ovpredct_table')."
    }
    </style>\n\n";
    
    if(!empty($_POST['calculator_ok']))
    {
        //last cycle date
        $date="$_POST[dateyear]-$_POST[datemonth]-$_POST[dateday]";
        
        //convert to time
        $lasttime=mktime(0,0,0,$_POST[datemonth],$_POST[dateday],$_POST[dateyear]);
        
        //first fertile day
        $firstdaytime=$lasttime + $_POST[days]*24*3600 - 16*24*3600;
        $firstday=date("F d, Y",$firstdaytime);
        
        //last fertile day
        $lastdaytime=$lasttime + $_POST[days]*24*3600 - 12*24*3600;
        $lastday=date("F d, Y",$lastdaytime);
        
        //have to adjust due date?
        $diff=$_POST[days] - 28;
        
        //due date $date + 280 days
        $duedatetime=$lasttime + 280*24*3600 + $diff*24*3600;
        $duedate=date("F d, Y",$duedatetime);
    
            
        //the result is here
        $ovcalc.='<div class="ovpredct_table">
        Here are the results based on the information you provided:<br /><br />
        You next most fertile period is <strong>'.$firstday.' to '.$lastday.'</strong>.<br ><br />
        If you conceive within this timeframe, your estimated due date will be <strong>'.$duedate.'</strong>    
        <p align="center"><input type="button" value="Calculate again!" onclick="javascript:history.back();"></p>
        </div>';
        
    }
    else
    {
        $ovcalc.='<div class="ovpredct_table">
        <form method="post">
        Please select the first day of your last menstrual period:<br /><br />
        '.ovpredct_datechooser("date",date("Y-m-d")).'<br><br>
        Usual number of days in your cycle: <select name="days">';
                
        for($i=20;$i<=45;$i++)
        {
            if($i==28) $selected='selected';
            else $selected='';
            $ovcalc.="<option $selected value='$i'>$i</option>";
        }
        
        $ovcalc.='</select>
        <p align="center"><input type="submit" name="calculator_ok" value="Calculate"></p>
        </form>     
        </div>';
    }
 
    return $ovcalc;
}
 
// This just echoes the text
function ovpredct($content) 
{   
    if(!strstr($content,"[ovulation-predictor]")) return $content;
    
    $ovcalc=ovpredct_generate_html();
    
    $content=str_replace("[ovulation-predictor]",$ovcalc,$content);
    return $content;
}
 
// the widget object
class OvPredct extends WP_Widget {
    /** constructor */
    function OvPredct() {
        parent::WP_Widget(false, $name = 'Ovulation Predictor');
    }
    
    function form()
    {
        ovpredct_options(true);
    }
    
    function widget($args, $instance) 
    {
        echo ovpredct_generate_html();
    }
}
 
add_action('admin_menu','ovpredct_add_page');
add_filter('the_content', 'ovpredct');
add_action('widgets_init', create_function('', 'return register_widget("OvPredct");'));
?>
Миниатюры
Откуда берет дату?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.07.2016, 14:38
Ответы с готовыми решениями:

Как узнать , откуда сайт берет данные
Привет , Ребят не пинайте . Хотел узнать возможно ли узнать например https://ru.investing.com/economic-calendar/ , откуда он скачивает...

Откуда программа берет значение
#include &lt;stdio.h&gt; main(void) { int t=3; { int t=9, q=5; { int f=7; int q=8; ...

Откуда программа берёт звук?
Здравствуйте. Недавно скачал программу SpectraLab для выявления частот и амплитуд, и у меня появился вопрос. Если включить нерабочий...

16
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
26.07.2016, 17:55
Тишинаа, http://php.net/manual/ru/function.date.php
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 07:32  [ТС]
А нельзя его значения месяцев поменять на русский? просто хотел чтоб он выводил результат на англ?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 07:38
Цитата Сообщение от Тишинаа Посмотреть сообщение
поменять на русский?
Цитата Сообщение от Тишинаа Посмотреть сообщение
выводил результат на англ?
Диссонанс.

Цитата Сообщение от Тишинаа Посмотреть сообщение
А нельзя его значения месяцев поменять на русский?
Написать свою функцию преобразования месяца в русс. яз.
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 08:01  [ТС]
откуда вообще взяли calculator_ok? просто я не знаю где прописаны эти месяца, то есть в функции перевода с каким именно массивом работать?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 08:14
Цитата Сообщение от Тишинаа Посмотреть сообщение
откуда вообще взяли calculator_ok?
А в коде не видно разве? Это название кнопки.
Цитата Сообщение от Тишинаа Посмотреть сообщение
просто я не знаю где прописаны эти месяца
См 145 строку.
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 08:23  [ТС]
значит надо просто поменять значения datemonth? через str_replace это возможно?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 08:40
Тишинаа, 89 строка, попробуйте заменить названия на русскоязычные.

Добавлено через 56 секунд
Цитата Сообщение от Jodah Посмотреть сообщение
Написать свою функцию преобразования месяца в русс. яз.
Не посмотрел до конца код, функция уже есть, по идее можно просто заменить названия.
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 08:47  [ТС]
на этой 89 строке можно поменять chooser, то есть когда выбирают месяц, но результат остается на англ, не подскажете как перевести через setlocale() и strftime(), именно здесь, потому что вижу в разных местах вызываются эти месяца
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
27.07.2016, 08:48
Если вдруг понадобится из timestamp'а переводить:
Массив месяцев
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 08:57  [ТС]
а как его вызвать правильно чтоб заработало именно в этом коде? просто я недавно начал изучать, и выдает фатальную ошибки при вызове этой функции
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 08:58
Цитата Сообщение от Тишинаа Посмотреть сообщение
результат остается на англ
Точно. Тогда строка 163, там как раз формируется дата на англ языке из таймстампа. Нужно написать (или взять по ссылке выше) функцию, которая представляет таймстамп в нужном вам виде.
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 09:04  [ТС]
вот не знаю теперь как вызвать эту функцию правильно, пишет фатальная ошибка, не знаете как примерно его написать в этом коде?

Добавлено через 55 секунд
мне показалось дата на англ формируется на 145 и 148 строках
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2016, 09:36
Тишинаа, нет, там конвертация идёт в таймстамп.

Цитата Сообщение от Тишинаа Посмотреть сообщение
пишет фатальная ошибка, не знаете как примерно его написать в этом коде?
А что у вас не получается? Функцию объявить?
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 09:46  [ТС]
пишу вместо $firstday=date("F d, Y",$firstdaytime);
вот это $firstday=natdate("F d, Y",$firstdaytime);
поэтому не правильно кажется, потому что я не знаю как правильно вызвать его))
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
27.07.2016, 10:18
Сравните кол-во параметров в объявлении ф-ции и в ее вызове.
0
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 17
27.07.2016, 10:50  [ТС]
разобрался, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.07.2016, 10:50
Помогаю со студенческими работами здесь

Откуда берет значения функция _msize?
Откуда берет своё значение _msize? Она обращается к какой-то переменной или проходит по выделенной памяти? Так же интересует в каких...

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

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

Откуда cmd берет тайлы букв?
читаю форум, в соседней ветке обсуждают коды нажатия клавиш клавиатуры. подумал, как происходит рисование в командной строке, в том...

Откуда функция ПолучитьМакет() берёт параметры?
Здравствуйте, возникла проблема, после выполнения функции Макет = ПолучитьМакет(&quot;МойМакет&quot;); в параметрах Макет'а отсутствует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru