2

わかりました。インターネットから収集したコードがあります。ですから、これが事実であり、私が達成しようとしていることです。

[OK]ページ、ユーザーが誕生日を入力します(誕生日ではありません)。したがって、dd / mm形式のデータがデータベースに保存されます。例:7月30日を表す30/07)

次のページのユーザーが移動します。達成しようとしているものと一致するように日付を正しくフォーマットし、対応する順序を追加し(ただし、ddとmmの間の-を削除します)、最初にその情報を取得したことがないため、yyをエコーし​​ません。場所。

基本的に、ユーザーがこのページにアクセスしたときにddとmmがわかっている場合は、現在の年をyyとして追加します(ただし、dbからyyをフェッチすることはできません)が、代わりにアドホックに提供します。

以下のスクリプトはインターネットからのものであり、うるう年を考慮に入れていますが、助けが必要です。年を削除することはできません。これは誤った結果をもたらすためです(おそらくstrtotime関数が原因です)が、ユーザーが誕生日を追加したときに、必要がないため、年を取得しませんでした。

コード:

<?php
function getStarSign($date="")
{
$zodiac[356] = "Capricorn";
$zodiac[326] = "Sagittarius";
$zodiac[296] = "Scorpio";
$zodiac[266] = "Libra";
$zodiac[235] = "Virgo";
$zodiac[203] = "Leo";
$zodiac[172] = "Cancer";
$zodiac[140] = "Gemini";
$zodiac[111] = "Taurus";
$zodiac[78]  = "Aries";
$zodiac[51]  = "Pisces";
$zodiac[20]  = "Aquarius";
$zodiac[0]   = "Capricorn";
if (!$date) $date = time();
$dayOfTheYear = date("z",$date);
$isLeapYear = date("L",$date);
if ($isLeapYear && ($dayOfTheYear > 59)) $dayOfTheYear = $dayOfTheYear - 1;
foreach($zodiac as $day => $sign) if ($dayOfTheYear > $day) break;
return $sign;
}
$myBday = "2013-07-30"; // this needs to be in English Australian format not American English format but do not need year
$AuEnBday = date("dS-F-Y", strtotime($myBday)); // this switches the date from USA to AU date format but do not need year
?>

上記のエコー:レオ2013年7月30日

エコーしたい:Leo 7月30日(年ビットはページ上の変数になる可能性がありますが、dbからではありません)

4

1 に答える 1

1
// One more time!
$myBday = date("Y") . "-07-30"; // 2013-07-30

// Two digit year
$myBday2 = date("y") . "-07-30"; // 13-07-30
于 2013-01-19T21:26:18.893 に答える